当前位置:酷酷问答>百科知识>计划任务服务程序

计划任务服务程序

2024-08-26 17:24:41 编辑:zane 浏览量:563

计划任务服务程序

的有关信息介绍如下:

计划任务服务程序

厉害的系统运维工程师能够让Linux系统实现自动化工作,无需人工的干预就可以让各个服务、命令在指定的时间段执行、服务或停止。更何况咱们已经有了如此彪悍的脚本程序,如果只是需要每天凌晨两点敲一下回车去执行这个Shell脚本程序,这样的工作简直就是痛苦死了(或者训练您家的小猫半夜按下回车键)。刘遄老师接下来教给同学们如何来设置服务器的计划任务服务,把有周期规律性的工作交给系统去自动完成。计划任务有“一次性”与“长期性”的区分。详情请关注《linux就该这么学》。

一次性计划任务顾名思义就只是一次性有效,一般用于临时的工作需要,咱们可以用at命令实现这种功能,只需要写成"at 时间"的形式就可以,如果想要查看已设置好但还未执行的计划任务可以用"at -l"命令,而删除的话可以用"atrm 任务序号"即可,默认用at命令来设置计划任务的话是通过交互式的方法,例如设置系统在今晚23:30分自动重启网站服务吧:

[root@linuxprobe ~]# at 23:30

at > systemctl restart httpd

at > 此处请同时按下Ctrl+d来结束编写计划任务

job 3 at Mon Apr 27 23:30:00 2015

[root@linuxprobe ~]# at -l

3 Mon Apr 27 23:30:00 2016 a root

当然如果您想挑战一下更加高难度但又简便的方式,可以把前面章节中学习的管道符(任意门)放到两条命令之间,让at命令接收前面echo命令的输出信息,以达到通过非交互式的方式创建计划任务,这样的话在Shell脚本中都可以做引用了~

[root@linuxprobe ~]# echo "systemctl restart httpd" | at 23:30

job 4 at Mon Apr 27 23:30:00 2015

[root@linuxprobe ~]# at -l

3 Mon Apr 27 23:30:00 2016 a root

4 Mon Apr 27 23:30:00 2016 a root

如果一不不小心设置了两条,想要删除其中一条的话也是很简单的:

[root@linuxprobe ~]# atrm 3

[root@linuxprobe ~]# at -l

4 Mon Apr 27 23:30:00 2016 a root

而如果您的工作需要是有周期规律性的,那Linux系统中默认启用的crond服务简直再适合不过了,创建、编辑计划任务的命令为"crontab -e",查看当前计划任务的命令为"crontab -l",删除某条计划任务的命令为"crontab -r",另外如果您登录的是超级用户的话,还可以通过加上-u参数来编辑其他人的计划任务。不过在正式的部署计划任务前,请先跟刘遄老师念一下口诀“分、时、日、月、星期 命令”,这是使用crond服务设置任务的参数格式,没有设置的位置也要用*号占位,如图所示:

参考上面crond计划任务实现的参数格式,假设目前每周一、三、五的凌晨3点25分都需要把某个网站数据目录通过tar命令打包成一个压缩包来当做备份文件,那么除了用减号(-)来表示一段连续的时间周期,例如12-15就可以代表每月的12-15日,除号(/)代表任务的间隔时间,例如/2就是每隔2分钟执行一次的意思,还可以用逗号(,)来分别表示多个时间段,如8,9,12来代表八月、九月和12月执行任务,那么来尝试做一下吧:

[root@linuxprobe ~]# crontab -e

no crontab for root - using an empty one

crontab: installing new crontab

[root@linuxprobe ~]# crontab -l

25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot

而如果计算机服务器中需要有多条计划任务,并且这次的工作是每周一至五的每天的凌晨1点钟清空/tmp临时目录中的所有文件,就可以把相应的参数依次写到下面。而在crond服务的计划任务参数中所有的命令请一定要用绝对路径的方式来写,如果不知道的话用whereis命令来查下吧:

[root@linuxprobe ~]# whereis rm

rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz /usr/share/man/man1p/rm.1p.gz

[root@linuxprobe ~]# crontab -e

crontab: installing new crontab

[root@linuxprobe ~]# crontab -l

25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot

0 1* * 1-5 /usr/bin/rm -rf /tmp/*

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/article/13212.html
热门文章