Linux 定时任务调度 (crontab) 完全指南

文章目录

1. 概述2. 基本语法与使用基本语法时间参数说明特殊符号说明特定时间执行任务案例
3. 快速入门4. 相关指令5. 应用案例

1. 概述

任务调度是指系统在特定时间自动执行指定的命令或程序。

任务调度分类

系统工作:必须周而复始执行的重要工作,如病毒扫描、日志轮转等个别用户工作:用户希望自动执行的程序,如数据库备份、数据同步等

2. 基本语法与使用

基本语法


crontab [选项]

时间参数说明

crontab 使用5个占位符定义执行时间:

位置 含义 范围
第一个 * 一小时中的第几分钟 0-59
第二个 * 一天中的第几小时 0-23
第三个 * 一月中的第几天 1-31
第四个 * 一年中的第几月 1-12
第五个 * 一周中的星期几 0-7(0和7都代表星期日)

特殊符号说明

符号 含义 示例
* 代表任何时间 第一个”*”代表每分钟都执行
, 代表不连续的时间 “0 8,12,16 * * *” 表示每天8点、12点、16点执行
代表连续的时间范围 “0 5 * * 1-6” 表示周一到周六的5点执行
*/n 代表每隔多久执行一次 “*/10 * * * *” 表示每隔10分钟执行一次

特定时间执行任务案例

时间格式 含义

45 22 * * *
每天22点45分执行

0 17 * * 1
每周一17点0分执行

0 5 1,15 * *
每月1号和15号的凌晨5点执行

40 4 * * 1-5
每周一到周五的凌晨4点40分执行

*/10 4 * * *
每天凌晨4点期间,每隔10分钟执行一次

0 0 1,15 * 1
每月1号和15号,以及每周一的0点0分执行

注意:星期几和几号最好不要同时出现,容易造成 confusion。

3. 快速入门

设置系统任务调度文件
/etc/crontab
设置个人任务调度


crontab -e

输入任务到调度文件,例如:


*/1 * * * * ls -l /etc/ > /tmp/to.txt

表示每分钟执行一次
ls -l /etc/ > /tmp/to.txt
命令

4. 相关指令


crontab -r
:移除所有任务调度(终止)
crontab -l
:列出当前的所有任务调度
service crond restart
:重启任务调度服务(在某些系统上可能是
systemctl restart cron

5. 应用案例

案例:每隔1分钟,将当前日期信息追加到
/tmp/mydate
文件中

步骤

创建执行脚本
mytask.sh


vim mytask.sh

输入内容:


#!/bin/bash
date >> /tmp/mydate

给脚本添加执行权限:


chmod 744 mytask.sh

设置定时任务:


crontab -e

添加以下行:


*/1 * * * * /绝对路径/mytask.sh

注意:使用脚本时最好使用绝对路径,避免因环境变量问题导致执行失败。


总结:crontab 是 Linux 系统中强大的定时任务管理工具,通过灵活的时间配置可以自动化执行各种系统维护和用户任务。掌握 crontab 的使用可以大大提高系统管理效率和任务自动化水平。建议在设置复杂任务时先手动测试脚本确保正确性,再添加到定时任务中。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
粽子叶乐乐-的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容