crontab 设置周期性被执行的任务的工具

1.1 crontab 服务管理

crontab 服务管理是 Unix 和类 Unix 系统(如 Linux 和 macOS)中用于设置周期性被执行的任务的工具。crontab 服务管理是 "cron table"(cron 表格)的缩写,它允许用户为任务安排在未来某个时间点执行,也可以定期重复执行。

1.2 crontab 定时任务设置

1) 基本语法

crontab [选项]

2) 选项说明

选项功能
-e编辑 crontab 定时任务
-l查询 crontab 任务
-r删除当前用户所有的 crontab 任务

查看当前用户的 crontab 列表

crontab -l

编辑当前用户的 crontab 列表

crontab -e

会打开一个文本编辑器(通常是你在系统中设置的默认编辑器),你可以在其中添加、修改或删除任务。

删除当前用户的 crontab 列表

crontab -r

注意:这会删除所有当前用户的 crontab 任务,使用时请谨慎。 

crontab 文件格式

crontab 文件中的每一行都代表一个定时任务,其格式如下:

* * * * * command_to_execute  
- - - - -  
| | | | |  
| | | | +---- Day of the week   (0 - 6) (Sunday=0)  
| | | +------ Month of the year (1 - 12)  
| | +-------- Day of the month  (1 - 31)  
| +---------- Hour              (0 - 23)  
+------------ Minute            (0 - 59)

3) 选择编辑器

aab@ubuntu:~/桌面$ crontab -e

执行上述命令,系统会提示我们选择编辑器, 此处没有 vim。

no crontab for atguigu - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]:

可以通过 EDITOR 环境变量在执行 crontab 时选择编辑器,命令如下。

aab@ubuntu:~/桌面$ EDITOR=vim crontab -e

4) 参数说明

( 1) 执行上述命令会进入 crontab 编辑界面, 并打开 vim 编辑定时任务。

* * * * * 执行的任务

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

( 2) 特殊符号

特殊符号含义
*代表任何时间。 比如第一个“*”就代表一小时中每分钟都执行一次的意思。
代表不连续的时间。比如“ 0 8,12,16 * * * 命令”,就代表在每天的 8 点 0 分, 12 点 0 分, 16 点 0 分都执行一次命令
-代表连续的时间范围。 比如“0 5 * * 1-6 命令”, 代表在周一到周六的凌晨 5 点 0 分执行命令
*/n代表每隔多久执行一次。比如“*/10 * * * * 命令”, 代表每隔 10 分钟就执行一遍命令

( 3) 特定时间执行命令

时间含义
45 22 * * * 命令在 22 点 45 分执行命令
0 17 * * 1 命令每周 1 的 17 点 0 分执行命令
0 5 1,15 * * 命令每月 1 号和 15 号的凌晨 5 点 0 分执行命令
40 4 * * 1-5 命令每周一到周五的凌晨 4 点 40 分执行命令
*/10 4 * * * 命令每天的凌晨 4 点, 每隔 10 分钟执行一次命令
0 0 1,15 * 1 命令每月 1 号和 15 号, 每周 1 的 0 点 0 分都会执行命令。 注意:星期几和几号最好不要同时出现, 因为他们定义的都是天。非常容易让管理员混乱。

 5) 实操

( 1) 监听 test.txt

aab@ubuntu:~/桌面$ tail -F test.txt

( 2) 每隔 1 分钟,向/home/aab/桌面/test.txt 文件中添加一个 hello,world 的字符串

*/1 * * * * /bin/echo "hello,world" >> /home/aab/桌面/test.txt

6)注意事项

确保你的脚本或命令具有执行权限(使用 chmod 命令)。

在 crontab 中执行脚本时,环境变量可能与你在终端中看到的有所不同。如果你的脚本依赖于特定的环境变量,请确保在脚本中显式设置这些变量。

使用 crontab -e 编辑任务时,如果未看到任何输出或编辑器没有打开,可能是因为你的系统没有设置默认编辑器或环境变量问题。

使用 crontab -l 检查你的 crontab 文件,确保你的任务已正确添加。

对于复杂的任务调度需求,考虑使用更高级的任务调度工具,如 atsystemd timers 或更专业的任务调度软件。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值