20.Linux中的计划任务
2019-03-10 本文已影响33人
一枼落知天下
Linux中的计划任务
At单次执行计划任务
cron 计划任务的使用
计划任务:在某个时段自动执行某个任务。
Linux 系统中;
At cron
[root@JhouShuai ~]# which at
/usr/bin/at
[root@JhouShuai ~]# which crontab
/usr/bin/crontab
[root@JhouShuai ~]#
at # 只能执行一次
语法:
at 时间
服务:atd 必须开启
[root@JhouShuai ~]# ps -aux | grep atd
root 1029 0.0 0.0 25904 944 ? Ss 12:16 0:00 /usr/sbin/atd -f
root 5765 0.0 0.0 112724 984 pts/0 S+ 16:21 0:00 grep --color=auto atd
[root@JhouShuai ~]#
[root@JhouShuai ~]# date
2019年 03月 10日 星期日 16:21:35 CST
[root@JhouShuai ~]# at 16:23
at> mkdir /root/shuaigege110 #ctrl +backspace 删除错误信息
at> <EOT>
job 1 at Sun Mar 10 16:23:00 2019 ##按ctrl+d结束
[root@JhouShuai ~]#
at -l 查看计划任务
任务编号 执行的时间 执行者
[root@JhouShuai ~]# at -l
2 Sun Mar 10 16:35:00 2019 a root
[root@JhouShuai ~]#
在某天的某时执行计划任务
[root@JhouShuai ~]# at 20:00 2016-10-1 #在某天的某时执行计划任务
[root@JhouShuai ~]# at now+10min #在 10分钟后执行
at> mkdir /root/mimida110
at> <EOT>
job 2 at Sun Mar 10 16:35:00 2019
[root@JhouShuai ~]# at -l
2 Sun Mar 10 16:35:00 2019 a root
[root@JhouShuai ~]#
删除at计划任务:
atrm 命令
atrm + 计划任务的编号
[root@JhouShuai ~]# at -l
#任务编号 执行的时间 执行者
2 Sun Mar 10 16:35:00 2019 a root
[root@JhouShuai ~]# atrm 2 #删除编号 是2的计划任务
[root@JhouShuai ~]# at -l
[root@JhouShuai ~]#
总结 :at计划任务执行一次,下次就不能再次执行
周期性的计划任务
在生产环境中: 一般都是周期的去执行某个任务 例如:备份日志
内容说明
周期性计划任务:
cron 主程序
Crond服务
1.系统级别 2,用户级别的计划任务
主文件: /etc/crontab
[root@JhouShuai ~]# vim /etc/crontab
* * * * * user-name command to be executed
分 时 日 月 周
[root@JhouShuai ~]# systemctl status crond.service #(查看crond服务的状态)
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 日 2019-03-10 12:16:50 CST; 4h 15min ago
Main PID: 1027 (crond)
Tasks: 1
CGroup: /system.slice/crond.service
└─1027 /usr/sbin/crond -n
3月 10 12:16:50 JhouShuai systemd[1]: Started Command Scheduler.
3月 10 12:16:50 JhouShuai systemd[1]: Starting Command Scheduler...
3月 10 12:16:50 JhouShuai crond[1027]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 24% if used.)
3月 10 12:16:50 JhouShuai crond[1027]: (CRON) INFO (running with inotify support)
Hint: Some lines were ellipsized, use -l to show in full.
[root@JhouShuai ~]#
[root@JhouShuai ~]# systemctl restart crond 重启
[root@JhouShuai ~]# systemctl enable crond 开机自启
针对用户级别的计划任务:
对于root用户:
命令:
[root@JhouShuai ~]# crontab -e 创建一个计划任务
[root@JhouShuai ~]# crontab -l 显示
[root@JhouShuai ~]# crontab -r 删除计划任务
[root@JhouShuai ~]#crontab -e #写法
分 时 日 月 周 谁做后面的事情 命令
每个取值范围:
分:0-59
时:0-23
日:1-31
月:1-12
周:0-7 0 7 都是周日
, - /
命令或脚本最好用绝对路径写出来
[root@JhouShuai ~]# crontab -e 每月9,18,22号这几天的凌晨1点1分,执行一个备份脚本
1 1 9,18,22 * * /root/backup.sh
[root@JhouShuai ~]# crontab -e 每月9-22号这几天的凌晨1点1分,执行一个备份脚本
1 1 9-22 * * /root/backup.sh
[root@JhouShuai ~]# crontab -e 每5分钟,执行一次
*/5 **** /root/backup.sh
例子
[root@JhouShuai ~]# crontab -e
*/5 2 1,3,5 6-12 * /root/backup.sh
查看计划任务:Crontab -l
计划任务的文件在哪???
/var/spool/cron/root
删除计划任务
crontab -r
单条删除
Crontab -e vim /var/spool/cron/root dd删除