Linux进程管理:任务计划服务程序
Linux进程管理:任务计划服务程序
计划任务分为一次性计划任务与长期性计划任务。
1、一次性计划任务:只执行一次,一般用于临时的工作需求。
设置执行时间:at 时间
查看已设置好但还未执行的任务:at -l
删除任务:atrm 任务序号
at命令的参数及其作用
参数 | 作用 |
---|---|
-f | 指定包含命令的任务文件 |
-q | 指定新任务名称 |
-l | 显示待执行任务列表 |
-d | 删除指定待执行任务 |
-m | 任务执行后给用户发邮件 |
在使用at命令来设置一次性计划任务时,默认采用的是交互式方法。
例:设置20:30分自动重启,查看设置后的任务,然后删除任务。
注:warning提醒表示at命令只是在告诉我们接下来的任务将由sh解释器负责执行。
例:可以把前面学习的管道符(任意门)放到两条命令之间,让at命令接收前面echo命令的输出信息,以达到通过非交互式的方式创建计划一次性任务的目的。
如:echo “reboot” | at 20:30
例:把计划任务写入到Shell脚本中,当用户激活后再开始倒计时执行,可以使用“at now +2 MINUTE”的方式操作,这样代表2分钟(MINUTE)后执行这个任务,也可以替代成小时(HOUR)、日(DAY)、月(MONTH)等词汇:
at now +2 MINUTE
时间的表示方法:
绝对表示方法:
- midnight //当天午夜
- noon //当天中午
- teatime //当天下午4点
- hh:mm mm/dd/yy
相对表示方法:
- now+n minutes //从现在起向后n分钟
- now+n days //从现在起向后n天
- now+n hours //从现在起向后n小时
- now+n weeks //从现在起向后n周
2、长期性计划任务:周期性地、有规律地执行某些具体的任务。
创建、编辑计划任务:crontab -e
查看当前计划任务:crontab -l
删除某条计划任务:crontab -r
以管理员的身份登录,可以在编辑他人的计划任务:crontab -u
crontab命令的参数及其作用如下所示。
crontab命令的参数及其作用
参数 | 作用 |
---|---|
-e | 编辑计划任务 |
-u | 指定用户名称 |
-l | 列出任务列表 |
-r | 删除计划任务 |
使用crond服务设置任务的参数格式:分、时、日、月、星期 命令
注:如果有些字段没有被设置,则需要使用星号(*)占位。
使用crond设置任务的参数字段说明
字段 | 说明 |
---|---|
分钟 | 取值为0~59的整数 |
小时 | 取值为0~23的任意整数 |
日期 | 取值为1~31的任意整数 |
月份 | 取值为1~12的任意整数 |
星期 | 取值为0~7的任意整数,其中0与7均为星期日 |
命令 | 要执行的命令或程序脚本 |
例:在每周一、三、五的凌晨3点25分,都需要使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。
注:
用逗号“,”来分别表示多个时间段,例如“8,9,12”表示8月、9月和12月。
用减号“-”来表示一段连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15日)。
用除号“/”表示执行任务的间隔时间(例如“*/2”表示每隔2分钟执行一次任务)。
在crond服务中需要同时包含多条计划任务的命令语句,应每行仅写一条。例如再添加一条计划任务,它的功能是每周一至周五的凌晨1点钟自动清空/tmp目录内的所有文件。
尤其需要注意的是,在crond服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,如果不知道绝对路径,请用whereis命令进行查询,rm命令路径为下面输出信息中加粗部分。
删除定时任务:
还可以直接编辑配置文件达到设置定时任务的目的:
vim /etc/crontab
缺点是直接编辑文件没有提示,使用crontab 命令若写错会有提示。
例子:
列出crontab
以root用户列出zhangsan 的crontab
1 | #crontab –u zhangsan –l |
以普通用户zhangsan列出自己的crontab
1 | $crontab –l |
对/var/spool/cron/zhangsan文件备份
1 | $crontab –l >/home/zhangsan/zhangsancron |
删除crontab
删除crontab也会删除/var/spool/cron目录中指定用户的文件
以用户root删除zhangsan的crontab文件
1 | #crontab –u zhangsan -r |
以普通用户zhangsan删除自己的crontab文件
1 | $crontab -r |
恢复丢失的crontab文件
如果不小心误删除了crontab文件,且在主目录下还有一个备份,那么可 以将其复制到/var/spool/cron/username(具体用户),如果由于权限问 题无法复制可以使用crontab命令解决
以zhangsan用户登录恢复丢失的crontab文件
1 | $crontab –r |
删除文件
1 | $crontab –l |
恢复丢失的文件,恢复后可以看到文件信息
1 | $crontab –l |