我正在使用 Cloud9 Server。我有一个 .sh 文件,当我在终端上打开它时,它可以正常工作,但是,当我在 crontab -e 中添加 crontab 任务来打开此文件时,它无法正常工作。
我的.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 文件但仍然不起作用。
答案1
我认为您的 crontab 条目可能有误。条目中的第 6 个字段应该是运行该进程的用户名,而不是运行该脚本的 shell。因此,假设您没有名为“sh”的用户,请用您的用户名替换该条目。
例如(假设您希望以用户“bob”的身份运行该命令):
*/5 * * * * bob /home/ubuntu/workspace/teste.sh
(经过编辑,包含 grooveplex 的评论)