job.sh
我有一个脚本/home/user/scripts
,然后符号链接到/home/user/bin/job
.自定义二进制文件路径已包含在 中,因此每当我从 cli.bashrc
发出命令时,一切都会按预期工作。job param1 etc
当所述命令必须通过 cronjob 运行时,它不会。另一方面,如果 cronjob 引用完整路径(/home/user/bin/job
而不是简单的job
),则一切运行正常。
有关如何解决这个问题的任何指示吗?
答案1
cron
故意在有限的环境中运行(包括受限路径,它与标准 shell 的路径不同)。
您要么需要运行一个脚本(包括脚本的完整路径),然后在内部设置路径变量,要么需要在行crontab
本身中设置路径。
其中一个例子是,
12 0 * * * (export PATH=$PATH:/somedirectory; job)
实际上,更安全的做法是仅包含在 中运行的任何内容的完整路径crontab
,并在执行的脚本中正确设置路径cron
。