Linux计划任务


Linux计划任务


类型:
一次性计划任务
周期性计划任务

一次性计划任务

前提: atd服务必须运行

[root@test01 ~]# systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2017-02-17 17:26:29 CST; 3h 57min ago
 Main PID: 1269 (atd)
   CGroup: /system.slice/atd.service
           └─1269 /usr/sbin/atd -f

2月 17 17:26:29 localhost.localdomain systemd[1]: Started Job spooling tools.
2月 17 17:26:29 localhost.localdomain systemd[1]: Starting Job spooling tools...
[root@test01 ~]# 
[root@test01 ~]# 
[root@test01 ~]# systemctl is-active atd.service 
active

制订一次性计划任务

at

[root@localhost ~]# at 15:30
at> poweroff
at>
job 1 at 2016-11-20 15:30

[root@localhost ~]# at now + 1 minute
at> mkdir /tmp/aaaa
at>
job 2 at 2016-11-20 13:16

周期性计划任务

前提: crond服务必须运行

[root@test01 ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2017-02-17 17:26:29 CST; 4h 1min ago
 Main PID: 1267 (crond)
   CGroup: /system.slice/crond.service
           └─1267 /usr/sbin/crond -n

2月 17 17:26:29 localhost.localdomain systemd[1]: Started Command Scheduler.
2月 17 17:26:29 localhost.localdomain systemd[1]: Starting Command Scheduler...
2月 17 17:26:29 localhost.localdomain crond[1267]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 67% if used.)
2月 17 17:26:30 localhost.localdomain crond[1267]: (CRON) INFO (running with inotify support)
[root@test01 ~]# 

制订周期性计划任务

crontab -e

时间            COMMAND命令 

时间:
分 时 日 月 周

分钟:0----59 
时:  0----23
日期:1----31
月:  1----12
周:  0----6

示例:

每天晚上11:30 30 23 * * *
每天零点 0 0 * * *

每周五下午4点 0 16 * * 5

  • 连续的时间 5 8-14 * * *

不连续的时间 5 8,10,12 * * *

每5分钟 */5 * * * *

COMMAND命令:
1 建议写命令的完整路径 /bin/mkdir /abc
2 只能写一条命令(shell脚本)

示例: 每分钟在/tmp目录创建文件

[root@localhost ~]# crontab -e
*/1 * * * * /usr/bin/touch /tmp/date +\%F-\%T.txt &> /dev/null
[root@localhost ~]#

注意:
写命令时%在周期性计划任务中是结束的意思,因此在使用%时,需要加\右斜杠转义
&> /dev/null 不给用户发送邮件

示例:每半个小时分别显示内存,CPU、磁盘使用状态信息

  1. 创建脚本文件

[root@test01 ~]# cat /root/1.sh

!/bin/bash

echo "内存容量:"
free -m
echo
echo "磁盘容量:"
df -hT
echo
echo "CPU负载:"
uptime

  1. 编辑计划任务

[root@test01 ~]# crontab -l
*/1 * * * * /usr/bin/touch /tmp/date +\%F-\%T.log &> /dev/null
*/30 * * * * /usr/bin/bash /root/1.sh

查看周期性计划任务

[root@localhost ~]# crontab -l
*/1 * * * * /bin/touch /tmp/date +\%F-\%T.txt
[root@localhost ~]#

删除周期性计划任务

crontab -r >>> 会删除所有计划任务

上一篇:Centos7 设置定时任务


下一篇:计划任务