Dan*_*ton 4 email linux ubuntu cron
我管理的其中一台 Ubuntu 10.10 Web 服务器有一个非常奇怪的问题。
我使用 ruby 和 rake 编写了一个脚本来运行一些 tar 命令并执行数据库的 mysqldump。我在 root 用户 crontab 中安装了一个条目,如下所示:
0 0,12 * * * /bin/bash -l -c 'cd /my/script/path && rake backup:everything'
Run Code Online (Sandbox Code Playgroud)
这在其中一台服务器上运行良好。然而另一方面,这实际上似乎并没有执行我的脚本中的内容。
我知道它被要求确定,因为当我跑步时
grep CRON /var/log/syslog
Run Code Online (Sandbox Code Playgroud)
它返回:
Mar 22 12:00:01 ServerName CRON[10273]: (root) CMD (/bin/bash -l -c 'cd /my/script/path && rake backup:everything')
Run Code Online (Sandbox Code Playgroud)
但是,它绝对不是在该脚本中执行的操作。
当我像这样直接运行脚本时:
cd /my/script/path && sudo rake backup:everything
Run Code Online (Sandbox Code Playgroud)
它完美地工作。
我也在两台服务器的 crontab 中做了这个:
0 0,12 * * * /bin/bash -l -c 'cd /my/script/path && rake backup:everything >> output.txt'
Run Code Online (Sandbox Code Playgroud)
(就像在脚本中一样,我每隔一段时间就会“放置'备份 x 文件夹'”)
在 cron 作业正在工作的服务器上,它创建 output.txt 文件并将预期的输出放在那里,如“开始备份”等。
但是,在它不工作的服务器上,它只会创建文件但将其留空。但是当我再次从 syslog 复制命令并手动运行它时:
sudo /bin/bash -l -c 'cd /my/script/path && rake backup:everything >> output.txt'
Run Code Online (Sandbox Code Playgroud)
它工作正常,输出符合预期。
我现在可能正在抓紧稻草,但这可能与此有关吗:
CRON[10271]: (root) MAIL (mailed 55 bytes of output but got status 0x004b#012)
Run Code Online (Sandbox Code Playgroud)
这会在每次cron 调用后出现在系统日志中。我真的只有这个 cron 工作和另一个更新系统时钟的小工作,但从它的外观来看,它们都没有正常工作。
不正确的邮件配置是否会杀死我的 cron 作业?这甚至可能吗?
您应该提供在 cron 行中 rake 的完整路径。就像是:
/sbin/rake 或者它实际居住的任何地方。
如果 rake 所在的路径不在您的 root 用户路径中,它将无法运行。
如果是邮件,您应该会在邮件日志中看到一些内容。检查那里。
| 归档时间: |
|
| 查看次数: |
15626 次 |
| 最近记录: |