Linux小推车linux tools

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删除

上一篇下一篇

猜你喜欢

热点阅读