crontab 是不是接受命令行参数? [关闭]

Posted

技术标签:

【中文标题】crontab 是不是接受命令行参数? [关闭]【英文标题】:Does crontab take command line arguments? [closed]crontab 是否接受命令行参数? [关闭] 【发布时间】:2015-02-19 23:53:49 【问题描述】:

我编写了一个将.trc 文件从源指令移动到备份指令的代码。现在我已经将时间(多长时间)、源路径和备份路径作为该文件的命令行参数。现在,当我从sh 调用脚本时,它工作正常。但是在 crontab 中它不起作用,这让我想知道 crontab 是否允许传递命令行参数。我的sh 命令是:

sh trace_bkp.sh 2 /home/adhikarisubir/test/basic_unix /home/adhikarisubir/test_bkp

其中2 定义了 2 分钟的旧文件,下一个是源路径,最后一个是目标路径。我在 crontab 中设置为:

*/5 * * * * sh /home/adhikarisubir/test/basic_unix/trace_bkp.sh 2 /home/adhikarisubir/test/basic_unix /home/adhikarisubir/test_bkp

【问题讨论】:

如果您运行此命令:sh /home/adhikarisubir/test/basic_unix/trace_bkp.sh 2 /home/adhikarisubir/test/basic_unix /home/adhikarisubir/test_bkp,而您在 /root 中作为用户 root 是否有效? 你也在哪个crontab里写这个?您自己的(用户)crontab 还是系统范围(root)的 crontab? @AngeloFuchs,没有换行符。感谢您的编辑。我如何检查这是谁的 crontab?我只使用crontab -e 并在其中编写我的代码。 当你打电话给crontab -e 时,你是用哪个用户做的?作为用户还是 root? @AngeloFuchs,作为用户!!此外,我的其他 crons 也是这样工作的。同样在对值进行硬编码后,cron 可以正常运行脚本。 【参考方案1】:

是的,crotab 行可以像 man page 所说的那样获取参数。

调用驻留在从控制台到非控制台 cron 环境的环境更改中的命令时,很可能出现问题。

通常最好将 logging functions 添加到您的 cron 行以获取正在发生的事情的输出。

*/5 * * * * sh /home/adhikarisubir/test/basic_unix/trace_bkp.sh 2 /home/adhikarisubir/test/basic_unix /home/adhikarisubir/test_bkp >> /home/adhikarisubir/test/basic_unix/cron.log 2>&1

然后阅读该日志,您将了解它是如何出错的。

【讨论】:

谢谢。我发现了错误。这是在 crontab 中传递参数时,home 前面缺少的 /

以上是关于crontab 是不是接受命令行参数? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Linux之crontab命令

Linux 命令行开关和参数是不是有标准? [关闭]

java命令行参数的默认访问修饰符是啥[关闭]

不需要命令行参数的程序是不是需要 String args[] 参数?

linux怎么修改crontab

在java中接受日期类型命令行参数