Назад | Перейти на главную страницу

Выполнение php как sudo внутри crontab

Я написал PHP-скрипт, и для его выполнения требуется разрешение sudo, потому что он выполняет некоторые другие системные вещи. Итак, я добавил это в crontab -e но я не вижу, что мой скрипт работает правильно.

Команда:

*/5 * * * * /usr/bin/php /srv/www/php/script.php && date > /srv/www/php/mylog.log

Единственный вывод - это дата. Нет ответа от моего сценария. Это исполняемый файл (chmod a + x), и если я использую ту же команду в терминале как root, все в порядке. Так что это до crontab -e?

Также я убедился, что мой cronjob работает (/ var / log / syslog):

Oct 23 16:40:01 $MYMACHINE CRON[13797]: (root) CMD (/usr/bin/php /srv/www/php/script.php && date > /srv/www/php/mylog.log)

И это каждые 5 минут. Кроме того, в моем "mylog.log" всегда указывается последняя отметка времени, так что я предполагаю, что внутри может быть проблема со скриптом.

РЕДАКТИРОВАТЬ: я создал еще один тестовый сценарий, чтобы проверить, выполняются ли сценарии или нет. Но сценарий был выполнен, так что проблема внутри сценария.

Я пытаюсь динамически добавлять IP-адреса в цепочку iptables:

#!/bin/bash
value=`cat whitelist.txt`
#echo "$value"

for i in $(echo $value | tr "," "\n")
do
  # process
  /sbin/iptables -I teamspeakCommunication --src $i -j ACCEPT
done

Вы можете увидеть что-нибудь странное?

Добавьте его в свой файл / etc / crontab следующим образом:

*/5 * * * * root /usr/bin/php /srv/www/script.php && date > /srv/www/php/mylog.log

Если первая строка вашего скрипта #!/usr/bin/php и разрешение на выполнение, вы можете вызывать его напрямую, как любой другой скрипт, например, написанные на bash, perl и т. д.

С уважением!