什么是cron?
Cron是linux系统中用来定期执行或指定程序任务的一种服务或软件。与它相关的有两个工具:crond 和 crontab。crond 就是 cron 在系统内的宿主程序,crontab 是管理 cron 任务的管理工具。一般情况下,我们安装完centos5/6 linux系操作系统之后,默认便会启动crond任务调度服务,另外在我们在开机启动优化的设置中也要保留crond开机自启动。crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作。如果有便会根据其预先设定的定时任务规则自动执行该定时任务,此举就相当于我们平时使用的闹钟一样。
cron定时任务用途:
1、linux系统自身定期执行的任务工作:系统周期性自行执行的任务工作,如轮询系统日志、备份系统数据、清理系统缓存等,这些任务无需我们人为干预。
2、用户执行的任务工作:某个用户或管理员定期要做的任务工作,例如每隔5分钟和互联网上时间服务器进行时间同步,每晚0点备份网站站点数据及数据库数据,一般这些工作需要由每隔用户自行设置才行。
crontab设置命令参数:
crontab -e ==vi /var/spool/cron/root
crontab -l ==cat /var/spool/cron/root
提示:-i,-r参数在工作中很少用,什么需求需用-e进去编辑即可。
如果需要查看其它用户定时任务有哪些可以:
crontab –u 用户 –l == cat /var/spool/cron/bqh
为什么其它用户可以更改定时任务?(setuid特权)
定时任务基本格式:
提示:
时间记忆口诀:分时日月周
定时任务依赖的服务:crond
要想运行定时任务,必须开启crond服务。
查看crond服务状态:/etc/init.d/crond status
定时任务测试:
例如:每隔2个小时将系统文件/etc/services文件打包备份到/tmp下(每次备份按时间生产不同的备份包)
1.直接crontab -e 编辑定时任务:
crontab -e
00 */2 * * * cd/etc/ && tar zcf /tmp/service_$(date +\%F-\%H).tar.gz ./services >/dev/null 2>&1
2.写脚本,然后定时调用。(强烈建议此方法)
执行脚本后发现没问题,后再加入到定时任务里去调用。
crontab -e
00 */2 * * * /bin/sh /server/scripts/date_tar.sh >/dev/null 2>&1
定时任务小结: