Centos 7 서버의 루트 사용자 crontab에는 다음이 있습니다.
30 4 1-7 * * test $(date +\%u) -eq 7 && /usr/bin/needs-restarting -r || /usr/sbin/shutdown -r
매일 1일~7일 4시 30분에 실행하고 요일이 일요일인지 테스트한 후 다음 명령을 실행하여 재부팅이 필요한지, 필요한지 확인해야 합니다. 그런데 오늘(2017년 8월 1일) 화요일인 서버가 다시 시작되었습니다. 누구든지 이유를 설명할 수 있나요?
답변1
0 이 a && b || c
아닌 값으로 종료되거나 종료되면 명령이 실행됩니다. 따라서 false인 경우 서버를 다시 시작합니다.c
a
b
test $(date +\%u) -eq 7
이름에 따라 /usr/bin/needs-restarting
서버를 다시 시작해야 할 경우 0이 반환될 수 있습니다. 이렇게 되면 안 된다고 확신하시나요 a && b && c
?
그렇지 않으면 시도해보십시오.a && { b || c; }