【发布时间】:2020-07-28 15:42:54
【问题描述】:
我在服务器中有一个 bash 脚本,我想在每个工作日的上午 10:30 运行该脚本,所以我设置了这样的玉米作业:
crontab -e
30 10 * * 1-5 /home/ubuntu/mydir/scripts/。我的脚本.sh
但它没有运行...如果我错过了任何步骤,谁能帮助我?
【问题讨论】:
-
/home/ubuntu/mydir/scripts/myscript.sh并确保您chmod +x myscript.sh -
@DavidC.Rankin 我试过这个但没有工作....这是一个 bash 脚本,如果我手动运行我使用这个命令的脚本“.myscript.sh”
-
如果您使用了
.,它可能是不同类型的脚本。如果muscript在这样的目录中,请尝试使用/bin/bash /home/ubuntu/mydir/scripts/myscript.sh。但是 sourced 脚本的来源通常是有原因的,因此它们可能无法完全正常工作。 -
@NiladriDey : 如果 cron 不能运行程序,应该有一些东西写在 stderr 上,但是 cron 默认通过电子邮件发送 stdout 和 stderr。你检查了吗?
-
另请注意,cron 通常使用
/bin/sh解释脚本,因此您使用的任何 bashism 都将不起作用。这就是为什么您还需要指定解释器,在脚本顶部使用#!/bin/bash或通过在/bin/bash -c "/home/ubuntu/mydir/scripts/myscript.sh"处执行您的脚本——在这种情况下,您的脚本不需要是可执行的。对困惑感到抱歉。请注意,当您使用./name.sh运行脚本时,./会明确消除要运行的脚本的歧义。它说在绝对路径${PWD}/name.sh上运行脚本,不要费心在PATH上搜索它。