У меня есть файл sh с командами удаления файлов.
Я запускаю его из php следующим образом:
shell_exec("sudo -n ./truncatefiles.sh 2>&1");
Это прекрасно работает, если я открываю файл PHP из браузера, но не работает с запланированной вкладки cron.
Пользователь PHP: www-data
Если я бегу whoiami
из cron возвращает то же самое: www-data
Я добавил это к моему visudo:
www-data ALL=(ALL) NOPASSWD: /www/sites/..../importscript/truncatefiles.sh
Оболочка exec для этого sh файла возвращает (из cron):
sudo: извините, для запуска sudo требуется пароль
Почему это работает в cron?
Что я должен сделать, чтобы заставить это работать?
Пожалуйста, попробуйте сделать следующее,
Попробуйте записать свой вывод из crotab в файл,
* * myscript.php >> /var/log/myjob.log 2>&1
Таким образом, вы можете отлаживать ваш скрипт.
1. Также проверьте пользователя и разрешения для вашего сценария оболочки, php-файл.
2. попробуйте с sudo crotab -e
Других решений пока нет …