吴宏东 - 记于2018年07月11日 - 博客 https://segmentfault.com/u/wu...

Linux 计划任务

计划任务

简介

在CentOS 7 周期性计划任务由cronie软件提供,cronie包含了标准的UNIX守护进程crond和相关工具;
一次性的任务由at/batch执行;

命令 crontab

创建计划任务可以有2个方式:
1、编辑/etc/crontab文件,追加计划;
2、使用 crontab -e命令;

格式:minute hour day month week [username] cmd;

minute:一个小时的哪一分钟,范围0~59;
hour:一天中的哪一个小时,范围0~23;
day:一个月中的哪一天,范围1~31;
month:一年中的哪一个月,范围1~12;
week:一周中的哪一天,范围0~7(0和7均表示周日);
username:用指定用户身份执行命令;
cmd:任务执行的命令;

前5个时间字段的语法:
不能为空,可以使用通配符*表示任何时间;
可以指定多个值,用逗号间隔,如1,2,3;
可以指定时间段,用减号间隔,如0-6;
可以使用步长/n表示,如0~6/2,即0,2,4,6;

前5个时间字段常用的表示:
[ *] 表示每分钟;
[/5 *] 表示每隔5分钟;
[30 0 *] 表示每天0:30;
[0 4,8-18,22 *] 表示每天4:00、22:00、8~18的每个整点;
[10 /6 ] 表示每天从零点开始每隔6小时的10分;
[23 0-23/2 *] 表示每天逢偶数小时的23分;
[30 1 1,15 ] 表示每月1日和15日凌晨1:30;
[5 1 7] 表示每周日凌晨1:05;
[0 22 1-5] 表示每周一至周五的晚上10点;
[30 4 1,15 * 5] 表示每月的1日和15日及每个周五的4:30(周和日是或的关系);

# 查看计划任务
crontab -l;
# 创建计划任务
crontab -e;
# 每分钟在目录/home/wuhd下生成随机文件
* * * * * cd /home/wuhd && touch r-$RANDOM;
# 删除计划任务
crontab -r;

创建一个脚本,保存在/shell/cron:

#!/bin/bash

newfile() {
time=`date +%Y%m%d%H%M%S`;
    cd /home/wuhd && touch "f-$time-$RANDOM";
}
newfile;

编辑/etc/crontab文件,追加计划任务内容:

# 编辑/etc/crontab文件
vi /etc/crontab;
# 追加计划任务,系统将每分钟执行一次脚本cron
* * * * * root /shell/cron;

吴宏东
25 声望4 粉丝

专注于Linux系统信息安全,精通渗透测试、安全审计、漏洞分析、反入侵技术。