【问题标题】:running a script in crontab在 crontab 中运行脚本
【发布时间】:2015-04-15 12:51:35
【问题描述】:

我的 crontab 中有一个非常简单的脚本,我想每天运行它。它位于/home:

-rwxr-xr-x 1 root        root     40 Apr 15 08:01 kill_slony_stop_sql.sh

有执行权限,内容如下:

#!/bin/bash
slon_kill;rcpostgresql stop

这是它每天运行的 cron 行:

56 12 * * * /home/kill_slony_stop_sql.sh

但由于某种原因它无法正常工作。当我在命令行中输入/home/kill_slony_stop_sql.sh 时,它运行良好,但在 crontab 中不起作用。

有什么想法吗?

【问题讨论】:

  • 请查看crontab tag wiki 以获取故障排除提示。这是一个非常常见的常见问题解答,通常与编程无关。

标签: linux shell crontab


【解决方案1】:

很可能是PATH 问题。查看Why is my crontab not running 并确保设置 PATH 以便它可以调用您的 slon_kill 命令。

另外,在你的 cron 中添加一些调试

56 12 * * * /home/kill_slony_stop_sql.sh &>/tmp/errorcron.log

还要查看日志; cron 通过系统日志记录其操作,系统日志(取决于您的设置)通常会转到 /var/log/cron/var/log/syslog

【讨论】:

    【解决方案2】:

    我在日常 cron 作业中遇到了同样的问题,我使用了 @daily 但这将在每天 00:00 运行。

    @daily /usr/local/bin/msa70_check.sh
    

    是我添加的 cron 选项卡行,下面是我运行的脚本。

    #!/bin/bash
    # msa70 disk check
    /sbin/mdadm --detail /dev/md0 /dev/md1|
    /bin/mailx -s"Disk check on server123 please check" person@domain.com
    

    我还必须编辑我的脚本并在 mdadm 和 mailx 前面添加 /sbin/ 和 /bin 才能运行 cron 作业

    【讨论】:

    • 我不确定这是一个星号问题,因为我还有许多其他使用该符号的任务,我需要它在特定时间运行,因为服务器上的流量会很低跨度>
    • 感谢 paul 在每个命令之前添加完整路径后它起作用了,我实际上找到了 slon 和 rcpostgresql 命令并将脚本修复为以下内容:#!/bin/bash /usr/bin/slon_kill; /usr/sbin/rcpostgresql 停止
    猜你喜欢
    • 2015-06-30
    • 2015-10-05
    • 2017-12-16
    • 2014-06-25
    • 2012-08-14
    • 2017-05-15
    • 2019-02-17
    • 2021-08-05
    • 1970-01-01
    相关资源
    最近更新 更多