Chinaunix

标题: 如何用脚本给crontab加一行内容? [打印本页]

作者: 洋芋环    时间: 2010-04-29 13:45
标题: 如何用脚本给crontab加一行内容?
环境是RHEL 5.4


crontab -e 会直接进入vi界面,客户不会使用vi

想写一个脚本自动加一行内容给crontab,客户运行一次就ok了,又不知道加到什么地方去


比如加这么一行:每天3点10分clearlog
10 3 * * * /usr/local/clearlog > /dev/null 2>&1


应该怎么写这个脚本?
作者: wtuter    时间: 2010-04-29 13:49
本帖最后由 wtuter 于 2010-04-29 13:51 编辑

回复 1# 洋芋环


    root用户加到这个文件

echo  "10 3 * * * /usr/local/clearlog > /dev/null 2>&1"  >> /var/spool/cron/root
作者: 洋芋环    时间: 2010-04-29 13:53
回复  洋芋环


    root用户加到这个文件

echo  "10 3 * * * /usr/local/clearlog > /dev/null 2>& ...
wtuter 发表于 2010-04-29 13:49



    在etc下面瞎找了半天,结果是这个文件...

楼上的是高手啊,今天两个问题都是你解答了
作者: Shell_HAT    时间: 2010-04-29 13:54
可以先试试直接修改cron文件是否可行,注意做好备份。
/var/spool/cron/crontabs/
作者: Shell_HAT    时间: 2010-04-29 13:56
回复 3# 洋芋环


这类鸡楚知识在置顶的十二篇里面有讲解:
http://bbs.chinaunix.net/thread-442596-1-1.html
作者: Perl_Er    时间: 2010-04-29 13:56
回复 1# 洋芋环

    cronfile = /tmp/crontab.${USER}
    crontab -l > $cronfile
    echo "******" >> $cronfile
    crontab $cronfile
    rm -rf $cronfile
作者: Shell_HAT    时间: 2010-04-29 13:58
记得以前看到过一个帖子说不建议直接修改cron文件,总之注意做好备份吧。
作者: flw    时间: 2010-04-29 14:08
你们这些人啊,都是坏习惯!制造隐患的坏习惯!
我从一个严谨的开发人员的角度,告诉你们这个问题应该怎么做。

好习惯的方法只有两个:
1,root 用户放到 /etc/cron.d 下,或者根据情况放到 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly 下。
2,非 root 用户,先自己把 crontab 文件生成好了,然后调用 crontab /path/to/your/crontab_file 这个命令,就可以安装私有的计划任务。
作者: ccjsj1    时间: 2010-04-29 16:21
本帖最后由 ccjsj1 于 2010-04-29 16:23 编辑

LZ最好做好备份。 客户最好用crontab -e修改文件,当多个人同时echo xxxx >> cron.file。。。。,

cron特点:1.无终端 2.PATH不全
作者: yecheng_110    时间: 2010-04-29 18:35
你们这些人啊,都是坏习惯!制造隐患的坏习惯!
我从一个严谨的开发人员的角度,告诉你们这个问题应该怎么 ...
flw 发表于 2010-04-29 14:08


看来俺养成了一个好习惯
作者: flw    时间: 2010-04-30 13:17
我回过的帖子每次就都没了下文了……
作者: where27    时间: 2010-04-30 13:27
本帖最后由 where27 于 2010-04-30 13:28 编辑

回复 11# flw


    城管来了大家肯定都得跑啊。。
作者: flw    时间: 2010-04-30 13:29
回复  flw


    城管来了大家肯定都得跑啊。。
where27 发表于 2010-04-30 13:27

我觉得是我太犀利了,直接给出终结版答案,然后就没有讨论的必要了,然后大家又都不太懂得感谢人,因此就一下子没人回帖了……
作者: Shell_HAT    时间: 2010-04-30 13:44
又或者楼主认为8楼太严谨,以至于他们的客户不能happy?
作者: flw    时间: 2010-04-30 13:56
又或者楼主认为8楼太严谨,以至于他们的客户不能happy?
Shell_HAT 发表于 2010-04-30 13:44

有些严谨的做法会提升复杂度,这样人们基于成本和简洁的原则,可能会选择不那么严谨的做法。

可是我的做法又简单,又不会出错,从技术角度考虑,确实是不二选择。
至于没有 BUG 是否是一件好事情,可能就和各个公司的价值观有关了。
作者: where27    时间: 2010-05-04 10:28
回复 15# flw


    斑竹啊,我碰到麻烦了,在root用户线执行cronab -e,里面编辑了
30 8,16 * * * /xunjian/xunjian.sh
保存退出
不知道为什么不定时执行这个巡检脚本了啊,你说的那个把root用户加到cron.d里面是啥子意思哟
作者: Shell_HAT    时间: 2010-05-04 10:53
回复 16# where27


xunjian.sh有x权限吧?

30 8,16 * * * /xunjian/xunjian.sh >>/xunjian/xunjian.log 2>&1
这样有啥结果没?
作者: where27    时间: 2010-05-04 11:05
本帖最后由 where27 于 2010-05-04 11:08 编辑

回复 17# Shell_HAT


    有执行权限,我手动执行没有问题,放到crontab里就不行,没有生成那个/xunjian/xunjian.log日志文件
作者: Shell_HAT    时间: 2010-05-04 11:16
回复 18# where27


没有收到执行失败的邮件?
作者: redspider    时间: 2010-05-04 11:20
大多规范的解决方案都是看似复杂,实则简洁。
问题在于大多数人鼠目寸光,不管后来的事。
和当前人类社会的资源消耗是一样的,以环境换发展,然后再花数倍的代价治理。
作者: where27    时间: 2010-05-04 13:53
回复 19# Shell_HAT


    没有,感觉crontab死了,啥事不干了
作者: 洋芋环    时间: 2010-05-05 00:51
我回过的帖子每次就都没了下文了……
flw 发表于 2010-04-30 13:17



    实在不好意思,8楼的意思我明白,感谢回复

测试了一下用echo直接加,crontab -l 是能看到的

其实我也只是一个用户
作者: 洋芋环    时间: 2010-05-05 00:52
又或者楼主认为8楼太严谨,以至于他们的客户不能happy?
Shell_HAT 发表于 2010-04-30 13:44



    不

    干这事儿是为了让客户不爽
作者: yigenjin    时间: 2010-05-05 09:17
回复 8# flw
crontab支持here document的用法。可以从STDIN读取。
个人觉得crontab /path/to/crontabfile的方式也不够严谨,操作不够原子化。


作者: flw    时间: 2010-05-07 03:29
回复  flw
crontab支持here document的用法。可以从STDIN读取。
个人觉得crontab /path/to/crontabfile的 ...
yigenjin 发表于 2010-05-05 09:17

你是错的。
作者: yigenjin    时间: 2010-05-07 09:18
回复 25# flw

呵呵,错从何来?

除了原子化这个描述不够正确。只是为了强调这个动作不受意外情况影响。

大牛指教啊!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2