如何从Mac执行此Cron作业?

时间:2018-11-30 03:27:36

标签: bash macos cron

我有一个bash脚本,如果我在计算机上的任何目录中,都可以用cd ~/Documents/Code/shhh/ && ./testy执行,并且可以成功推送到我想要的github。

我正试图安排一项日常工作来执行此操作,所以我运行了crontab -e,它打开了一个nano编辑器,然后我将30 20 * * * cd ~/Documents/Code/shhh/ && ./testy设置为每天晚上10:30运行,并击中控件O,输入并控制X。但是它仍然没有执行。当我键入crontab -l时,它会显示我的命令,并且在打开新窗口时会显示一条You have new mail.消息。即使从其他任何目录运行该命令,我的命令也不会执行。

我认为我的crontab作业位于/var/at/tmp,所以我运行了30 20 * * * cd ../../../Users/squirrel/Documents/Code/shhh/ && ./testy,但仍然没有任何反应,即使我从该目录中将其写出来也可以运行。旁注,即使使用sudo

,我也无法进入tmp文件夹

好,当我输入mail时,我看到很多消息,并且在内部出现此错误

---------------Checking Status of 2--------------- [master 0c1fff8] hardyharhar 1 file changed, 1 insertion(+), 1 deletion(-) fatal: could not read Username for 'https://github.com': Device not configured

2 个答案:

答案 0 :(得分:1)

默认情况下,当您打开nano Input_file时,它将以INSERT模式打开(不同于vi,我们必须通过按i键显式进入INSERT模式)。现在,完成CTNRL+O后,它将询问您是否要将更改保存到打开的文件中,例如-> File Name to Write: Input_file如果按ENTER,则将其保存并返回到输入新行的屏幕(到Input_file)。现在您可以按CONTRL+X从Input_file中出来。保存后可能会卡住并想出来然后再尝试一次?

答案 1 :(得分:1)

crontab -e根本不会“实时”编辑crontab文件-仅在保存更改 并退出编辑器后,更改才会保存到活动文件中。

听起来您可能使用了错误的目录路径。通常,将从用户的主目录开始执行crontab条目中的命令。因此,如果主目录为/ Users / squirrl,则命令cd ../parent_directory/将尝试移至/ Users / parent_directory。我怀疑这不是您想要的。

最后,请注意,cron作业在非常小的环境下运行,而没有运行大多数常用的shell安装文件(例如.bashrc)。最值得注意的是,如果脚本使用/ bin或/ usr / bin中没有的任何命令,则您将需要使用它们的显式完整路径,或者更改PATH变量以包括它们所在的目录。 / p>