Выполнение 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 ?

Также я убедился, что моя задача cron запущена (/ 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

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

1
задан 23 October 2015 в 20:29
1 ответ

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

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

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

С уважением!

1
ответ дан 3 December 2019 в 23:58

Теги

Похожие вопросы