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

浙公网安备 33010602011771号