我需要创建一个 bash 脚本以便:
- 清空我的根 Crontab;
- 通过 bash 脚本插入新的 Cronjobs。
对于第一点我可以使用crontab -r
对于第二点这里我找到了这个脚本:
#!/bin/bash
lines="* * * * * /path/to/command"
(crontab -u root -l; echo "$lines" ) | crontab -u root -
我怎样才能在 Bash 脚本中将它们结合在一起?
像这样:
#!/bin/bash
crontab -r
line="* * * * * /path/to/command;
* * * * * /path/to/command2;
* * * * * /path/to/command3"
(crontab -u root -l; echo "$line" ) | crontab -u root -
答案1
您发布的示例将打印当前 crontab 并注入新指令。
如果你打算只注入新的指令,那么删除当前的 crontab,而不是你的
lines="* * * * * /path/to/command"
( crontab -u root -l; echo "$lines" ) | crontab -u root -
搭配:
lines="* * * * * /path/to/command"
echo "$lines" | crontab -u root -
而且,正如您在评论中指出的那样,添加多个 cron 时使用分号作为分隔符是错误的。您可以这样做:
lines=" line1
line2"
或者:
crontab -u root - <<EOF
line1
line2
EOF
或者:
(
echo line1
echo line2
) | crontab -u root -