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 是不是接受命令行参数? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章