linux计划任务

linux计划任务

1、 计划任务-at计划任务使用方法

2、cron-计划任务使用方法

 

在我们LINUX中,我们可以通过crontab和at这两个东西来实现这些功能的

计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据

CROND:这个守护进程是为了周期性执行任务或处理等待事件而存在

任务调度分两种:系统任务调度,用户任务调度

at和crontab这两个命令:

at:它是一个可以处理仅执行一次就结束的指令

crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去

1.1  at计划任务的使用

语法格式: at  时间  ;服务:atd     

[root@localhost ~]# systemctl restart atd
[root@localhost ~]# systemctl status atd

[root@localhost ~]# systemctl is-enabled atd

在Centos6查看开机启动服务:

[root@localhost ~]# chkconfig --list  |  grep atd  

[root@localhost ~]# at 17:30
at> mkdir /tmp/aaa
at> mkdir /tmp/bbb
at> <EOT>     ctrl+D
job 1 at Mon Mar 9 17:30:00 2020

[root@localhost ~]# at -l      #查看计划任务
1 Mon Mar 9 17:30:00 2020 a root
[root@localhost ~]# atq      #查看计划任务
1 Mon Mar 9 17:30:00 2020 a root

 

1.2查看计划任务具体内容

(1)[root@localhost ~]# at -c 1   查看计划任务具体内容

 

(2)[root@localhost ~]# ls /var/spool/at/
a000010192c65a spool
[root@localhost ~]# tail /var/spool/at/a000010192c65a
OLDPWD=/etc/yum.repos.d; export OLDPWD
cd /root || {
echo 'Execution directory inaccessible' >&2
exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER44901903'
mkdir /tmp/aaa
mkdir /tmp/bbb

marcinDELIMITER44901903

1.3   at计划任务的特殊写法

[root@localhost ~]# at 18:00 2020-03-10
at> mkdir abc
at> <EOT>
job 2 at Tue Mar 10 18:00:00 2020
[root@localhost ~]# at now +10min
at> touche abc.txt
at> <EOT>
job 3 at Mon Mar 9 09:36:00 2020
[root@localhost ~]# at 18:30 <a.txt

 

删除at计划任务

语法: atrm  任务编号

 atrm 2

2、 crontab定时任务的使用

crond命令定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作

启动服务

[root@localhost ~]# systemctl start crond
[root@localhost ~]# systemctl status crond

cron命令参数介绍:

crontab  的参数:

crontab -u hr       #指定hr用户的cron服务

crontab -l          #列出当前用户下的cron服务的详细内容

crontab -u mk -l   #列出指定用户mk下的cron服务的详细内容

crontab -r   #删除cron服务

crontab -e   #编辑cron服务

例如:

crontab -u root -l     # root查看自己的cron计划任务

crontab -u san -r      # root想删除san的cron计划任务

 

 

星期日用0或7表示

一行对应一个任务,特殊符号的含义:     

*

代表取值范围内的数字

(任意/每)

/

指定时间的间隔频率

*/10   0-23/2

-

代表从某个数字到某个数字

8-17 

分开几个离散的数字

6,10-13,20

 

 

 

 

 

 

 

创建计划任务

[root@localhost ~]#  crontab -e

1 3 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2

 

[root@localhost ~]# crontab -u bin -e

 

查看所有建立的任务

[root@localhost ~]# crontab -l     查看当前用户的任务

/var/spool/cron  查看所有用户建立的任务

[root@localhost ~]# ll /var/spool/cron

 

系统级别的计划任务

[root@localhost ~]# vi /etc/crontab 

也可以直接在/etc/crontab中添加计划任务

使用crontab命令的注意事项:

环境变量的问题

清理你的邮件日志 ,比如使用重定向 >/dev/null  2>&1

 

ls /etc/cron   #按两下tab键

cron.d/       cron.deny     cron.monthly/ cron.weekly/

cron.daily/   cron.hourly/  crontab  

注: cron.d/       #是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面。

cron.deny     #控制用户是否能做计划任务的文件;

cron.monthly/  #每月执行的脚本;

cron.weekly/   #每周执行的脚本;

cron.daily/     #每天执行的脚本;

cron.hourly/   #每小时执行的脚本;

crontab       #主配置文件 也可添加任务;

常见的计划任务写法和案例

每天晚上21:00 重启apache

 0 21 * * * /etc/init.d/httpd  restart

每月1、10、22日的4 : 45重启apache。

   45 4 1,10,22 * *  /etc/init.d/httpd  restart

每月1到10日的4 : 45重启apache。

 45 4 1-10 * *   /etc/init.d/httpd  restart

每隔两天的上午8点到11点的第3和第15分钟重启apach

 3,15 8-11 */2 * *  /etc/init.d/httpd  restart

晚上11点到早上7点之间,每隔一小时重启apach

  0 23-7/1 * * * /etc/init.d/apach restart

周一到周五每天晚上 21:15 寄一封信给 root@panda:

 15 21 * * 1-5  mail -s "hi" root@panda < /etc/fstab

 

posted @ 2020-03-09 18:09  科子  阅读(282)  评论(0)    收藏  举报