매일 cronjob으로 실행하고 모든 종료 및 다시 시작을 기록하는 스크립트를 만들려고 합니다. 나는 이것을 알아냈지만 grep은 무시되는 것 같고 스크립트의 출력은 last -x shutdown reboot
.
set ydate = $(date --date yesterday “+%b %d”)
last -x shutdown reboot | grep "$ydate" >>/var/log/down
전날의 재부팅 및 종료만 캡처하려면 어떻게 해야 합니까?
답변1
이것이 해결책일 수 있습니다:
#!/bin/bash
YEST=$(date "--date=${today} -1 day" +%Y%m%d235959)
YEST_ONLY=$(date "--date=${today} -1 day" +"%b %e")
last -t $YEST -x shutdown reboot | grep "$YEST_ONLY"
- 첫 번째 줄: 어제 날짜를 형식으로 출력합니다
YYYYMMDDHHMMSS
. 이는 Expect가 매개변수 형식으로 지정되는last
방식 입니다.-t
- 2행 :
Mon DD
어제의 형식을 만듭니다. 왜? 왜냐하면-t
from은last
특정 날짜를 검색하지 않기 때문입니다. 시간을 얻어 해당 시간을 검색합니다.그리고이전 링크 항목입니다. - 마지막으로
last
어제와 이전 콘텐츠shutdown
및reboot
로그를 표시하고 어제를 필터로 grep합니다.
예. last
특정 날짜에 대한 날짜 매개변수를 갖는 것이 가능하다는 데 동의합니다 .