Linux任务调度和定时任务

  • Linux crond 任务调度

    • 基本使用代码
    • 属性信息
    • 其他使用代码
  • Linux at 定时任务

    • 基本使用代码
    • 时间设置

Linux crond 任务调度

基本使用代码
// 进入任务调度状态(命令行模式)
crontab -e
// 输入需要调度的任务,例如:每分钟执行一次(ls -l /etc/ > /tmp/to.txt 查询/etc/目录下的文件,并以覆盖形式卸载/tmp/to.txt中)
*/1 * * * * ls -l /etc/ > /tmp/to.txt
// 其他调度计划
// 完成后输入(:wq)保存退出任务调度状态
:wq
属性信息

第一个*:每小时的第几分钟,

第二个*:每天的第几小时

第三个*:每个月的第几天

第四个*:每年的第几个月

第五个*:一周中的星期几(0-7:0和7都是周日)

注:每个 * 之间有空格

不同形态

*: 表示每一个时间点,每一分钟开始,每一小时开始…

*/n: 表示每隔n分钟执行一次

a,b: 表示不连续,如 0 8,12,16 * * * 表示每天8点,12点,16点整执行一次

a-b: 表示连续,如 0 5 * * 1-6 表示周一到周六的凌晨五点执行一次

其他使用代码
conrtab -r	:终止任务调度
conrtab -l  :列出当前任务调度

Linux at 定时任务

基本使用代码
// at 定时任务,也是一次性任务
at [选项] [时间]
-m	: 任务完成,给用户发邮件							| -V 	: 显示版本信息
-I  : atq别名										   | -q <队列>  : 使用指定队列
-d  : atrm别名									   | -f <文件>  : 从指定文件读取任务
-v  : 显示任务被执行时间								  | -t <时间参数> : 以时间参数形式提交运行任务
-c  : 打印任务内容到标准输出
// Ctrl D [按两次] : 退出at命令输入
Ctrl D
Ctrl D
时间设置
  1. hh:mm (小时 : 分钟)如果今天这个时间已过,则明天执行
  2. midnight (深夜),noon(中午),teatime(下午四点)
  3. 1~12 +AM/PM
  4. month day 或 mm/dd/yy (月/日/年) 或 dd.mm.yy (日.月.年)如 04:00 2021-03-01
  5. 相对时间:now + count time-unit :如 now + 5minutes (minutes 分钟;hours 小时;days 天;weeks 星期)
  6. today , tomorrow