1 什么是定时任务
我们的服务器存放的都是非常重要的数据,为了安全起见,我们每晚都会进行备份把数据备份到其他服务器上防止数据丢失,那么我们每天晚上都要手动的去备份吗?
服务器上运行的服务都会有日志文件,它会记录程序运行运行时的输出信息,服务器运行久了这些文件就会非常大,那么我们要定期的进行手动删除吗?
如果我们需要定时执行一些周期性重复性的任务,我们就会用到定时执行任务功能来帮我们自动执行每天、每周等周期性重复性的任务而不需要人为干预即可实现。
2 Windows的定时任务
作为使用者最多的操作系统,windows下也有定时任务。依次选择开始
——>所有程序
——>附件
——>系统工具
——>任务计划程序
3 Linux的定时任务
Linux中的定时任务主要分为两种:
- 系统定时任务
- 用户自定义定时任务
3.1 系统定时任务
系统周期自行执行的任务工作,如轮询系统日志、备份系统数据、清理系统缓存等,这些任务无需我们认为干涉。系统定时任务是由/etc/logrotate.conf文件中的定义的,它的文件定义内容为:
[root@lixin ~]# grep '^[^#]' /etc/logrotate.conf
weekly #按周分隔
rotate 4 #最多分成4份,然后覆盖
create #创建新的空文件,供记录
dateext #分隔文件,用日期加后缀名
include /etc/logrotate.d #包涵/etc/logrotato.d下的文件
/var/log/wtmp {
monthly #按月分隔
create 0664 root utmp #分隔后,创建权限为0644属主为root,名字为utmp的新文件
minsize 1M #最小1M
rotate 1 #分1份
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# 该文件定义的是系统定时任务,我们一般不更改其内容。
3.2 用户自定义任务
某个用户或系统管理员定期要做的任务,例如每隔5跟中和互联网上时间服务器进行时间同步(基础优化)每天晚上0点备份站点数据库及数据库数据,一般这些工作需要每个用户自行设置。
用户自定义常用的有三种:at
、anacron
、crontab
1.2.3 自定义任务种类
at
仅仅适合那些执行一次就结束的调度任务命令,例如:某天晚上需要处理一个任务,仅仅是这一天晚上,属于突发性的工作任务。由于at命令的是atd服务提供的,所以在我们使用at之前需要首先启动atd服务。由于at仅能执行一次,所以工作中并不常用。
[root@lixin ~]# chkconfig --list atd
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@lixin ~]#
anacron
这个命令适合那些非724小时开机的服务器,anacron并不能指定具体时间执行任务工作,而是以天为周期或者在系统每次开机后执行的任务工作。它会检测服务器停机期间应该执行,但没有进行的任务工作,并将该任务执行一遍。由于网站服务器基本都是724小时开机的,所以该命令也不常用。
crontab
这个命令可以周期性的执行任务工作,比如可以每5分钟同步一次服务器的时间。crontab这个命令时候crond服务提