![$(主机名) 在 cronjob 中不起作用](https://linux22.com/image/160123/%24(%E4%B8%BB%E6%9C%BA%E5%90%8D)%20%E5%9C%A8%20cronjob%20%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%20.png)
我有一个简单的备份脚本,其中包含以下行来为备份命名:
backup=$(/bin/date +'%Y-%m-%d_%H:%M_%S')_$(hostname).gz
当我在 root 用户下运行它时,效果很好。不幸的是,当我将其设置为作为 cronjob 运行时,$(hostname) 部分始终为空,并且我无法获取主机名。为什么它不起作用,如何在 cron 作业中获取主机名?
我运行的是 ubuntu 18.04
答案1
Crontab 有自己的路径变量列表等...您可以使用它们或从 crontab 运行 bash 脚本而不是类似 shell 的逗号。
这是 crontab 的使用方法
VARIABLE=value
PATH=/bin:/path/to/doanything
0 0 * * * doanything.sh $VARIABLE
答案2
hostname
似乎不在PATH
你的脚本中。要么放在/bin/hostname
那里,就像您对 所做的那样date
,要么设置PATH
为包含/bin
(在脚本内或在 crontab 中)。