Я использую Сервер Cloud9. У меня есть .sh файл, который хорошо работает, когда я открываю его на терминале, однако, когда я добавляю crontab задачу в crontab-e для открытия этого файла, он не работает хорошо.
Мой .sh файл создает резервное копирование моего веб-сайта, и отправьте это в путь, который я выбрал.
#!/bin/bash
/usr/bin/php remote.phar --action=backup --host=http://admiravelidiota-rodmsantos.c9users.io --secret=MySecretKey --download --dlmode=http --dlpath= "/home/ubuntu/workspace/"
/bin/echo "Executed"
Я сделал этот файл, который будет "выполняться" php файлом вида:
<?php
$contents = file_get_contents('/home/ubuntu/workspace/teste.sh');
echo shell_exec($contents);
?>
Затем я добавил этот php файл, который будет выполняться на crontab, который будет выполняться каждые 5 минут, такие как:
*/5 * * * * lynx http://gustavo-gustavomoty.c9users.io/php.php
Я уже попробовал crontab выполнение .sh файла непосредственно, это не работало, именно поэтому я пробую .php файлом, но все еще не работаю.
Я думаю, что Ваша crontab запись может быть неправильной. 6-е поле в записи должно быть именем пользователя, кто выполняет процесс не оболочка, которая запускает скрипт. Так предположение, что у Вас нет пользователя названным "sh", заменяет запись Вашим именем пользователя.
, например, (предполагающий, что Вы хотите, чтобы команда работала как пользователь "боб"):
*/5 * * * * bob /home/ubuntu/workspace/teste.sh
(отредактированный для включения комментария grooveplex)