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、磁盘使用状态信息
- 创建脚本文件
[root@test01 ~]# cat /root/1.sh
!/bin/bash
echo "内存容量:"
free -m
echo
echo "磁盘容量:"
df -hT
echo
echo "CPU负载:"
uptime
- 编辑计划任务
[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 ~]#
删除周期性计划任务