cron和crontab

一、cron和crontab的概念
1)Cron是Unix系统的一个配置定期任务的工具,用于定期或者以一定的时间间隔执行一些命令或者脚本;可执行的任务范围可以是每天夜里自动备份用户的home文件夹,也可以每个小时记录CPU的信息日志。
crond位于/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最常用/var/lock/subsys/crond。
2)crontab(cron table)命令用于编辑执行中的定期任务列表,并且操作是基于每个用户的,每一个用户(包括root用户)都拥有自己的crontab。
crontab位于/usr/bin/crontab。
crond守护进程是在系统启动时由init进程启动的,受init进程的监视,如果它不存在了,会被init进程重新启动。这个守护进程每分钟唤醒一次,并通过检查crontab文件判断需要做什么。
每个用户有一个以用户名命名的crontab文件,存放在/var/spool/cron/crontabs目录里。若管理员允许或者禁止其他用户拥有crontab文件,则应编辑/etc/下面的cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件。每一个用户都可以有自己的crontab文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。
二、使用方法
1. 由于cron 是Linux的service(deamon),可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

2.cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
crontab filename //更新crontab文件(用来更新当前用户的crontab文件。注意:只是将filename指定的文件中的crontab条目写入用户的crontab文件(以用户名命名)中并清空crontab文件原来的条目,并不是将filename指定的文件复制/var/spool/cron/crontabs目录。)
# echo “Course Arrange Job runs well at: ” `date “+%Y-%m-%d %H:%M:%S”//输出当前时间
例如:
root查看自己的cron设置:crontab -u root -l
root想删除fred的cron设置:crontab -u fred -r
3.编译crontab
第一次运行crontab命令的时候会提示你选择一个编辑器。如果你不确定使用哪一个,你可以直接回车选择默认的nano编辑器。每一项cron实体的内容都包含六个部分:分钟、小时、月份中的哪一天、年份中的哪一月、星期中的哪一天,还有定时执行的命令。
这里写图片描述
除了数字还有几个个特殊的符号就是”“、”/”和”-“、”,”,代表所有的取值范围内的数字,”/”代表每的意思,”*/5”表示每5个单位,”-“代表从某个数字到某个数字,”,”分开几个离散的数字。

编写实例:
1)每天早上6点
# 0 6 * * * echo “Good morning.” >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
2)每两个小时
# 0 /2 * * echo “Have a break now.” >> /tmp/test.txt
3)晚上11点到早上8点之间每两个小时,早上八点
# 0 23-7/2,8 * * * echo “Have a good dream:)” >> /tmp/test.txt
4)每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
# 0 11 4 * 1-3 command line
5)# run-parts 执行脚本
# 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
6)每晚的21:30重启lighttpd
# 30 21 * * * /usr/local/etc/rc.d/lighttpd restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值