데스크탑 CMOS 배터리가 작동하지 않아서 컴퓨터가 시작될 때마다 시간과 날짜를 설정해야 합니다. 각 부팅이 완료된 후 내 컴퓨터의 날짜와 시간 설정을 자동화하는 쉘 스크립트를 만들고 싶습니다. 존재하는 옵션은 다음과 같습니다: 1. CMOS 배터리 구입:- 이것을 고려하고 있지만 그 동안에는 쉘 스크립트를 사용하면 됩니다. 2. NTP를 사용하여 시간과 날짜를 인터넷 서버와 동기화합니다. - 인터넷에 연결되어 있지 않습니다.
답변1
시스템이 시간을 알 수 없는 경우, 당신이 할 수 있는 유일한 일은 종료 시 날짜-시간을 저장하고 재부팅 시 다시 로드하는 것입니다(제안한 대로).
경고: 다음 지침은 SystemV 유형 init 시스템에서 작동해야 합니다. 테스트하지 않았으므로(지금은 Windows 컴퓨터를 사용하고 있습니다) 약간의 소금을 가하여 테스트해야 합니다. --- 오타가 있을 수 있습니다.
경고2내 생각에는갑자기 나타나다(init 스크립트의 최신 Ubuntu 구현) 이를 존중하지만 마일리지는 다를 수 있습니다. 테스트와 실험이 필요합니다. 다음에서 시작할 수 있습니다.여기좀 더 멋진 방식으로 하고 싶다면.
/etc/rc0.d
종료/재부팅 시 날짜를 저장하려면 및 디렉토리 에 스크립트를 추가할 수 있습니다 /etc/rc6.d
(첫 번째는 종료에 사용되고 후자는 재부팅에 사용됨). 이를 수행하는 일반적인 방법은 스크립트를 생성한 /etc/init.d
다음 거기에서 스크립트를 연결하는 것입니다.
다음 명령은 모두 루트로 실행되어야 합니다. 원하는 방법을 사용하세요...
/etc/init.d/savedatetime
따라서 원하는 편집기와 내용을 사용하여 스크립트를 만들 수 있습니다 .
#!/bin/sh
date +%m%d%H%M%Y.%S > /root/lastseendate.txt
실행 가능하게 만든 다음 링크합니다( date
형식은 날짜가 다시 읽을 수 있는 형식입니다. 참조 man date
).
chmod +x /etc/init.d/savedatetime
cd /etc/rc0.d/
ln -s ../init.d/savedatetime K99savedatetime
cd /etc/rc6.d/
ln -s ../init.d/savedatetime K99savedatetime
K99
이 스크립트는 종료 또는 재부팅 전에 실행되는 마지막 스크립트로 만들어야 합니다 . 재부팅을 통해 시계가 유지되고 종료 시에만 이를 수행하려면 마지막 두 명령을 건너뛰면 됩니다.
그런 다음 재부팅할 때 파일을 읽으려고 합니다. 놓을 곳이 많은데, 가장 쉬운 것이 입니다 /etc/rc.local
.
그것을 편집하고 시작 부분에 넣으십시오.
[ -f /root/lastseendate.txt ] && date $(cat /root/lastseendate.txt)
rm -f /root/lastseendate.txt
...그렇게 되어야 합니다. 즐거운 해킹되세요!