나는 crontab 항목을 다음과 같이 작성했습니다.
00 19 1-7 * 3 /sbin/init 0
매달 첫 번째 수요일에 내 Linux 서버를 꺼야 합니다. 안타깝게도 오늘(목요일)에 서버가 다운되었습니다. 누구든지 왜 이런 일이 발생했는지 알려주고 어떻게 고칠 수 있는지 알려주세요.
답변1
에서크론탭(5):
Note: The day of a command's execution can be specified by two fields --
day of month, and day of week. If both fields are restricted (ie,
aren't *), the command will be run when either field matches the cur-
rent time.
이는 귀하의크론탭입력이 예상대로 작동하지 않습니다. 이 명령은 매월 1일부터 7일까지 매일 실행되며 매주 수요일도 실행됩니다.
위와 같은 이유로,크론혼자서는 매월 첫 번째 수요일인지 아닌지를 결정할 수 없습니다. 그러나 다음을 사용하여 하나의 조건을 확인할 수 있습니다.크론그리고 다른 하나를 확인하십시오시험그리고날짜:
00 19 1-7 * * [ $(/usr/bin/date +\%w) = 3 ] && /sbin/init 0
작동 방식:
해당 명령은 매월 1일부터 7일까지 매일 실행됩니다.
$(/usr/bin/date +\%w)
평일을 반환합니다.[ ... = 3 ] &&
해당 평일이 수요일(3)인지 확인합니다.그렇다면
/sbin/init 0
처형됩니다.
퍼센트 기호는 특수 문자이므로 이스케이프해야 합니다.크론.