
중복 가능성:
date
cron 탭 작업을 실행하는 방법은 무엇입니까 ?
매주 금요일 23시부터 자정까지 생방송을 녹화하는 예약작업을 만들었습니다. 왠지 이건 작동하지 않는 것 같습니다.
크론잡은
57 22 * * 5 timeout -s SIGINT 66m mplayer -dumpstream http://82.201.100.23:80/slamfm -dumpfile /var/www/HOA-NL/$(date +"%U-%Y").mp3 >> /home/david/HOA-NL-LOG 2>&1
다음은 작동하지 않습니다.
57 22 * * 5 echo "foo" > /home/david/barr
그리고 다음 방법도 작동합니다. (시간 초과 에코가 의미가 없다는 것을 알고 있습니다. 이것은 단지 예일 뿐입니다.)
57 22 * * 5 timeout -s SIGINT 66m echo "foo" > /home/david/barr
이제 이것이 작동하지 않는 이유를 알고 싶습니다. /home/david/HOA-NL-LOG에 오류나 메시지가 표시되지 않습니다.
답변1
당신은 cron 작업을 사용하는 고전적인 실수를 저지르고 있으며 date +%foo
, 이는 cron의 가장 혼란스러운 기능으로 이어집니다. 명확하게 문서화되어 man 5 crontab
있지만 종종 간과되는 사항은 다음과 같습니다.
줄의 전체 명령 부분(개행 또는 % 문자까지)은 /bin/sh 또는 crontab 파일의 SHELL 변수에 지정된 쉘에 의해 실행됩니다. 백슬래시(\)로 이스케이프하지 않는 한 명령의 퍼센트 기호(%)는 개행 문자로 변경되고 첫 번째 % 이후의 모든 데이터는 명령에 표준 입력으로 전송됩니다.
백분율 기호를 백슬래시하세요!