gpt4 book ai didi

linux - 在 csh 中运行 cronjob

转载 作者:太空狗 更新时间:2023-10-29 12:15:10 32 4
gpt4 key购买 nike

我有一个用 csh 编写的脚本,我想每周运行一次。

我尝试为此使用 cronjob,但似乎 cronjob 正试图在 sh 中运行我的脚本,因此它无法正常工作。

可以做些什么来确保脚本在 cronjob 中正常运行,或者有没有其他方法可以在不使用 cronjob 的情况下完成我想做的事情?

我的 cron 作业看起来像这样:

0 0 * * 6 source ~/cron_job

~/cron_job 看起来像这样:

#!/bin/csh
source ~/.cshrc;
source ~/test_setup;
source ~/start_test

另请注意,直接在终端上运行 source ~/cron_job 可以正常工作,但 cronjob 不工作。我收到以下错误:

/bin/sh: source ~/cron_job : No such file or directory

最佳答案

0 0 * * 6 source ~/cron_job

这会尝试在当前脚本中“包含”或“获取”文件;这是错误的,原因有很多:

  1. 您正在尝试获取 csh 脚本;
  2. 即使它是一个 sh 脚本,cron 也希望您运行一个单独的程序,而不是 source 当前脚本中的某些东西 (也许它工作,我从未尝试过,但考虑两个脚本采购一些具有相同变量或函数名称的东西。糟糕!)

正确的做法是:

0 0 * * 6 csh -f ~/cron_job

这将启动csh-f 是为了防止加载启动文件,这有时可能会干扰脚本的运行。

关于linux - 在 csh 中运行 cronjob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814172/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com