Crontab 작성 팁

원문 : [url:3v4ab6ds]http://readytoact.gnukorea.com/base/95[/url:3v4ab6ds]

[quote:3v4ab6ds] 30 0 * * * /home/readytoact/bin/backup_local.sh > /home/readytoact/backup/log/backup_local_date +%Y%m%d.log 2>&1[/quote:3v4ab6ds]

위와 같이 파일이름에 date 명령을 이용하여 시간을 갖는 이름을 생성하는 명령줄이 crontab에 포함시켜서 작동하면 다음과 같은 메일을 시스템으로 부터 받을 수 있다.

[quote:3v4ab6ds] /bin/sh: Syntax error: EOF in backquote substitution[/quote:3v4ab6ds]

실 제로 명령줄을 긁어 콘솔상에서 실행시키면 문제가 되지 않지만, crontab에서는 문제를 야기하며 실행이 되지 않는다. 이유인 즉, 날짜 형식을 지정하는 '%'라는 특수문자 놈 때문에 그런것이다. 그래서 시스템으로 부터 수신된 메일의 제목도 아래와 같이

[quote:3v4ab6ds] Cron <readytoact@ubuntu> /home/readytoact/bin/get_gnukorea.sh > /home/readytoact/backup/log/backup_log_gnukorea_`date +[/quote:3v4ab6ds]

+에서 끝나버린다.

명령줄을 다음과 같이 수정한다.

[quote:3v4ab6ds] 30 0 * * * /home/readytoact/bin/backup_local.sh > /home/readytoact/backup/log/backup_local_date +\%Y\%m\%d.log 2>&1[/quote:3v4ab6ds]

네 백슬러쉬는(돈표시 ₩= ) 리눅스 명령어 실행중 서로를 한줄(연결)로 취급 하지요 ;)