如何使用bash脚本将crontab作业添加到crontab?

Gre*_*reg 3 linux cron crontab ubuntu-server ubuntu-16.04

我尝试了以下命令,crontab停止运行任何作业: echo "@reboot /bin/echo 'test' > /home/user/test.sh"| crontab -

在Linux中将作业添加到crontab的脚本的正确方法是什么?

McG*_*ady 5

我建议您阅读Cron和Crontab的用法和示例

您可以运行以下命令:

? ( printf -- '0 4 8-14 * *  test $(date +\%u) -eq 7 && echo "2nd Sunday"' ) | crontab
?  crontab -l
0 4 8-14 * *  test $(date +\0) -eq 7 && echo "2nd Sunday"            
Run Code Online (Sandbox Code Playgroud)

要么

#!/bin/bash
cronjob="* * * * * /path/to/command"
(crontab -u userhere -l; echo "$cronjob" ) | crontab -u userhere -
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

  • 这是从脚本添加新作业的唯一正确方法(不使用 crontab -e)。可惜@McGrady没有添加一些描述。没有记录表明 crontab 二进制文件可以从管道中获取文本。第一个命令:“执行此操作可以在删除现有作业的同时为当前用户创建新表。” 第二:“如果需要,可以通过 -u <user> 指定与当前用户不同的用户。要添加到现有作业,请通过 crontab -l 列出当前作业,添加新作业并将其全部通过管道传输到 crontab”不需要 bash,#!/bin/嘘就够了。另请注意我之前的评论。 (3认同)