我有一个简单的备份脚本,其中包含以下行来为备份命名:
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 中)。