2011-04-01 95 views
1

我在下面编写一个shell脚本以将作业添加到cron。编写一个shell脚本以将作业添加到cron中

#!/bin/sh 
touch date.cron 
echo '*/3 * * * * /usr/sbin/ntpdate 192.168.2.3' >date.cron 
crontab date.cron 
rm date.cron 

但我不想创建文件date.cron。如何直接添加作业而不创建文件。有什么建议么?

+0

检查[Crontab](http://www.queryhome.com/29093/crontab-installation-in-linux)应该是有用的... – user2794034 2014-01-20 11:35:44

回答

8
(crontab -l 2>/dev/null | grep -Fv ntpdate ; printf -- "*/3 * * * * /usr/sbin/ntpdate 192.168.2.3") | crontab 
+0

非常感谢! Benoit Thiery – louxiu 2011-04-01 14:03:05

+0

为什么grep命令? – knocte 2012-10-18 10:01:15

+0

避免影响crontab中的其他行。由于grep,只有ntpdate行会被添加/替换。 – 2012-10-18 10:44:38

1

使用>> “追加”,而不是> “输出”

#!/bin/bash 
Task="'*/3 * * * * /usr/sbin/ntpdate 192.168.2.3'"; 
$Task >> date.cron; 

问候。