우분투에서 시간과 날짜를 설정하는 쉘 스크립트

우분투에서 시간과 날짜를 설정하는 쉘 스크립트

데스크탑 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

...그렇게 되어야 합니다. 즐거운 해킹되세요!

관련 정보