cronjob [ -x /usr/lib/php5/sessionclean ] 명령을 찾을 수 없음을 반환합니다.

cronjob [ -x /usr/lib/php5/sessionclean ] 명령을 찾을 수 없음을 반환합니다.

저는 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

하지만 귀하의 버전은 사용자 이름 필드 없이도 잘 작동할 것입니다.

관련 정보