crontab이 내 스크립트를 실행하지 않습니까?

crontab이 내 스크립트를 실행하지 않습니까?

이 규칙을 crontab 하단에 추가했습니다.

* * * * * /root/test.sh

기본적으로 iptables를 재설정하여 어울릴 수 있습니다. 내가 망쳐도 나는 내 상자에서 갇히지 않습니다. Bash에서 스크립트를 실행하면 /root/test.sh예상대로 모든 것이 지워집니다. 그런데 기다리면 실행이 안되는 것 같습니다.

아래 명령을 실행했는데 1분마다 스크립트가 실행되는 것 같지만 스크립트가 아무 작업도 수행하지 않는 것을 볼 수 있습니다.

grep CRON /var/log/syslog

IIRC에서 스크립트를 소유자로 강제 실행하는 방법은 chmod a+s file. 그래서 그것이 내가 한 일입니다. stat이 줄을 보여주세요

Access: (6755/-rwsr-sr-x)  Uid: (    0/    root)   Gid: (    0/    root)

cron이 내 스크립트를 루트로 실행하면 안 되나요? 왜 실행되지 않는 것 같나요? 저는 Debian 7을 실행하고 있습니다. (헐떡임)

답변1

SUID 권한으로는 스크립트(바이너리 제외)를 실행할 수 없습니다. 스크립트가 실행 중이지만 루트가 아닌 사용자이므로 호출이 iptables작동하지 않습니다.

크론 작업의 오류 메시지는 로컬 이메일로 전송됩니다. 로컬 이메일이 올바르게 구성되었는지 확인하세요(일부 배포판에서는 기본적으로 이 작업을 수행하지 않음).

루트 액세스 권한이 있으므로 간단한 해결책은 루트 사용자의 crontab에 스크립트를 설치하거나 /etc/crontab다음 줄을 사용하는 것입니다.

* * * * * root /root/test.sh

관련 정보