crond的作用 crond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有 要执行的工作便会自动执行该工作。而Linux任务调度的工作主要分为以下两类:
系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是 否有新信,这些工作可由每个用户自行设置
服务的启动和停止cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
命令描述/sbin/service crond start启动/sbin/service crond stop停止/sbin/service crond restart重启服务/sbin/service crond reload重新加载配置要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可。
crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它,cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务:
命令描述crontab -l查看当前用户的cron配置crontab -e编辑当前用户的cron配置crontab -r删除当前用户的cron配置crontab -u设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab -u root -lroot查看自己的cron设置crontab -u fred -rroot想删除fred的cron设置crontab -u root -e在编辑cron服务时,编辑的内容有一些格式和约定crontab -l列出当前的crontab任务crontab -d删除当前的crontab任务crontab -e (solaris5.8上面是 crontab -r)编辑一个crontab任务,ctrl_D结束crontab filename以filename做为crontab的任务列表文件并载入示例 以下是两个cron语句的例子(在 /etc/crontab 文件里)。
12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1 //用来晚间备份 /etc 目录52 5 * * * root /usr/local/src/analog-5.32-lh/analog >> /dev/null 2>&1 //运行Analog程序处理服务器的统计信息以下是cron语句中的字段与字段说明:
字段123456说明分钟(0-59)小时(2-24)日期(1-31)月份(1-12;或英文缩写Jan、Feb等)周几(0-6,0为周日;或单词缩写Sun、Mon等)用户名(执行命令时以此用户的身份)第 6 个字段是一个要在适当时间执行的字符串 - 实例:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND #每天早上6点10分 10 6 * * * date #每两个小时 0 */2 * * * date (solaris 5.8似乎不支持此种写法) #晚上11点到早上8点之间每两个小时,早上8点 0 23-7/2,8 * * * date #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * mon-wed date #1月份日早上4点 0 4 1 jan * date输入crontab -l命令,每隔一分钟输入一次,则会出现以下现象;
结果图:
删除当前用户的cron配置