저는 Debian 8 시스템에서 PHP 5.6을 실행하고 있으므로 세션 데이터를 정리하기 위해 루트로 cronjob을 실행하고 있습니다.
09,39 * * * * root [ -x /usr/lib/php5/sessionclean ] && /usr/lib/php5/sessionclean
저는 지난 주에 다음과 같은 이메일을 받기 전까지 이 cronjob이 있다는 것을 몰랐습니다.
/bin/sh: 1: root: not found
위 명령을 실행하려고 하면 "-x"로 시작하는 명령이 실패합니다.
-bash: -x: command not found
-x는 무엇을 의미합니까?
[ -x /usr/lib/php5/sessionclean ]
의미는? 이 오류/이메일을 받는 이유가 무엇인지 아시나요?
답변1
시스템 전체 crontab을 사용하지 않으면 사용자 필드가 없습니다 /etc/crontab
.
샘플 사용자 crontab 파일:
# Edit this file to introduce tasks to be run by cron.
...
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
보시다시피 user
필드가 누락되었습니다.
-x
파일이 /usr/lib/php5/sessionclean
존재하고 실행 가능한지 테스트합니다 . 사용자 이름 필드가 없으면 다음과 같이 작성할 수도 있습니다.
09,39 * * * * test -x /usr/lib/php5/sessionclean && /usr/lib/php5/sessionclean
하지만 귀하의 버전은 사용자 이름 필드 없이도 잘 작동할 것입니다.