| 关键词: nbsp 任务 cron 文件 时间 命令 星号 一个 代表 用户 |
作为系统管理员,很多时候我们需要进行很多重复的工作,比如每天开机自动启动一些服务,定期清理系统垃圾文件等等。所以如果可以创建计划任务,我们就可以按需有计划的执行重复的工作,为自己省下不少时间,也可以避免一遍遍执行时的出错率。 linux下实现计划任务主要有以下几种方法:at命令,batch命令,cron服务以及anacron。 at:指定一个时间执行一个任务 (适用一个或多个任务,执行一次后就不用)----batch类似at,只是在系统空闲时执行而以。 cron:根据一个时间表自动执行任务 (使用一个或多个任务,周期性执行) anacron:在一个指定时间间隔错过后自动执行任务 下面我们就来看一下如何实现。 ① at: 格式:at 时间 例如#at now+3min ----------》进入at编辑模式,并指定3分钟后执行计划任务 在编辑模式输入计划任务命令,多命令<enter>操作,最后Ctrl+D键结束 at也有许多选项,常用的有 -l:列出未执行的任务(等同于atq命令) -d:删除还未执行的额任务(等同于atrm命令) 还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm -f 文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中) ② cron cron作为一个服务,必须先启动后才可以使用;所以必须安装vixie-cron-version软件包,之后启动服务:service crond start 使用corntab 命令定义cron任务。corntab 又分为系统和用户级别,我们主要定义用户级别 #crontab -----------》定义计划任务 -e :打开并编辑计划任务 (Crontab –e 编辑的任务不要加入用户名,默认为当前用户建立计划任务) -l: 列出所有计划任务 -r:删除所有计划任务 -u:指定为某用户建立计划 其实执行crontab是在/var/spool/cron/下建立了以用户名命名的文件,里面写入的即时你手动执行crontab的内容,所以也可以通过手动建立这个文件的方式指定计划任务 crontab输入的命令格式为: * * * * * command,例如: */5 * * * * ping -c1 192.168.0.155----------》每隔5秒执行 ping -c1 192.168.0.155。 前5段分别代表分,时,天,月,周即: 第一个*星号代表个小时的第几分钟:minute 范围是从0-59 第二个*星号代表每天的第几个小时:hour 范围是从0-23 第三个*星号代表每月的第几个日:day-of-month 范围从1-31 第四个*星号代表没年的第几个月:month-of-year 范围从1-12 第五个*星号代表每周的星期几:day-of-week 范围从0-6,其中0表示星期日 * :匹配对应时间段上的所有时间 / : 匹配对应时间域上没隔多久的时间 - : 匹配任意段连续时间 ,:匹配时间域上不连续的时间 例如:25 * 10 9 * ls var/spool/cron ---------》9月10号25分执行ls查看var/spool/cron 目录 5 6 * * * /usr/bin/updatedb ---------》每隔6小时更新locate命令的数据库 另外cron服务时有ACL的,由/etc/cron.allow /etc/cron.deny两个文件具体定义 ,默认只有root才可以定义cron计划任务 /etc/cron.allow :仅允许此文件内的用户建立计划 /etc/cron.deny : 仅拒绝此文件内用户建立计划 (若cron.allow存在,忽略此文件) ③ anacron: 对cron的补充,他可以让一些因为关机而错过执行的任务在开机后继续执行,配置文件为/etc/anacrontab,其内容形如: 1 20 cron.daily /etc/cron.daily ---------->对于超过1天未执行的任务,在下次开机20分钟后执行 好了,简单讲到这里吧,大家慢慢练习! |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|