【发布时间】:2018-06-20 19:35:57
【问题描述】:
我需要在多台机器上添加/删除 cron 作业。我有以下将通过变量添加单个 cron 但我需要变量添加多个即
CRON1=添加 cron && 添加第二个 cron && 添加第三个 cron。
我尝试了各种表达式,但执行第二个命令时总是得到错误。
#!/bin/bash
USERNAME=user
HOSTS="1.2.3.4 4.3.2.1"
CRON1='(crontab -l 2>/dev/null; echo "*/5 * * * * /path/to/job") | crontab -'
for HOSTNAME in ${HOSTS} ; do
ssh -l ${USERNAME} ${HOSTNAME} << EOF
$CRON1
EOF
done
【问题讨论】:
-
我会在
for循环之前生成一个包含所有您需要的条目的 tmp 文件,然后您可以仅使用crontab << tmpfile重定向整个文件(我认为,请仔细测试!)。祝你好运。 -
如果你使用的是 Bash 3+,你可以这样做
crontab <<<string