Linux计划任务
我们可以通过一些设置。来让电脑定时提醒我们该做什么事了。或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务。而遇到一些需要执行的事情或任务。我们也可以通过命令来告诉电脑一会临时把这个工作给做一下.
在我们linux中,我们可以通过crontab和at这两个东西来实现这些功能的
计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据
计划任务的安排方式分两种:
一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情.
一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务.
at和crontab这两个命令:
at:它是一个可以处理仅执行一次就结束的指令
crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去。
一:at
语法: # at 时间
1.下载at 软件 yum -y install at
2. 启动atd 服务 systemctl start std
3.设置任务
at 10:00 #如果是上午时间,后面加上am,比如9:20am
at> touch /tmp/test1 #输入你要执行的命令
at> <eot> #按ctrl+d保存
job 1 at fri mar 1 10:00:00 2019
4.查看计划任务
at -l #查看计划任务
fri mar 1 10:00:00 2019 a root
atq #查看计划任务
fri mar 1 10:00:00 2019 a root
5.删除计划任务 atm
atrm 1 #删除计划任务加上编号
at计划任务特殊写法
at 20:00 2018-10-1 在某天
at now +10min 在 10分钟后执行
at 17:00 tomorrow 明天下午5点执行
at 6:00 pm +3 days 在3天以后的下午6点执行
二:crontab 计划任务的使用
语法:#crontab -u -e
常用选项:
-l:list,列出指定用户的计划任务列表
-e:edit,编辑指定用户的计划任务列表
-u:user,指定的用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表
crontab -e 编辑时的语法:
0或者7都是表示星期天,另外在这个时间的表达式中,还有些特殊符号,意思如下:
四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6
例:
每天凌晨2点1分:1 2 * * *
每月1、10、22日的4 : 45:45 4 1,10,22 * *
每月1到10日的4 : 45:45 4 1-10 * *
每隔两天的上午8点到11点的第3和第15分钟:3,15 8-11 */2 * *
注:在计划任务中,默认的最小单位就是分,不能再小了;所有用户的计划任务,都会在/var/spool/cron/下产生对应的文件.