재시작 날짜를 기록하는 방법

재시작 날짜를 기록하는 방법

저는 Linux를 처음 사용하고 올바른 방식으로 작업을 수행하면 항상 안전하지 않습니다. 때때로 재부팅을 사용하는 Raspbian 시스템(소프트웨어가 아닌 문제의 경우)이 있으며 재부팅할 때마다 로그인이 이루어지길 원합니다. 내 생각은 다음과 같습니다. crontab 작업은 다음과 같습니다.

@reboot date >> /var/log/reboots

효과가있다. 좀 더 우아한 게 있나요? 솔루션이 수용 가능하다면 날짜 파일 시스템이 가득 차는 것을 방지하기 위해 로그 파일을 "롤링"하는 방법이 있습니까?)?

답변1

Debian에서는 재부팅이 기록됩니다. ~에서man last:

Last searches back through the file /var/log/wtmp (or the  file  desig-
nated  by  the -f flag) and displays a list of all users logged in (and
out) since that file was created.
...
The pseudo user reboot logs in each time the system is rebooted.   Thus
last  reboot will show a log of all reboots since the log file was cre-
ated.

이 파일은 기본적으로 이미 로그 회전에 있어야 하므로 /var/log/wtmp(참고자료 참조 /etc/logrotate.conf) 이에 유의하세요.

다음 옵션을 사용하여 이전 로그 파일을 사용할 수 있습니다 -f.

last reboot -f /var/log/wtmp.1

답변2

crontab 항목은 정상이지만 cron활성화해야 합니다. 내가 선호하는 것은 /etc/rc.local다중 사용자 런레벨의 끝에 도달했을 때 호출되는 라인 에 비슷한 라인을 넣는 것입니다 .

단일 사용자 모드에서 시작하면(원하든 원하지 않든) 둘 다 호출되지 않을 수 있습니다. 이것이 충분히 정확하지 않은 경우 다른 경로를 선택하여 /var/log/syslog가장 최근의 부팅 메시지를 분석하고 이 방식으로 기록한 마지막 메시지 이후의 파일에 모든 날짜 타임스탬프를 추가하는 것이 좋습니다. cron또는 에서 실행할 수 있지만 재부팅 사이에 올바른 저장을 얻는 것으로 rc.local가정합니다 ./var/log/syslog

재부팅 시 기록되는 30자 한 글자에 대해서는 걱정할 필요가 없습니다. 이는 무엇보다 디스크를 채우지 않을 것입니다. 이것이 정말로 문제라고 생각한다면 4바이트(32비트)를 바이너리로 사용하여 파일에 기록하기만 하면 됩니다. 정확도를 낮추고 재시작 사이에 일부 델타를 저장하면 이를 더 줄일 수 있습니다.

관련 정보