diff --git "a/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240617-\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206\345\221\275\344\273\244.md" "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240617-\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..4881816dbc6086bdbb70be3b6dadf1c675ea9d22 --- /dev/null +++ "b/\351\231\266\345\256\227\350\261\252/\347\254\224\350\256\260/20240617-\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206\345\221\275\344\273\244.md" @@ -0,0 +1,46 @@ +# 周期任务管理命令 + +## crontab + +#### 用户级crontab文件 + +- `/var/spool/cron/crontabs/username` + +#### 全局crontab文件 + +- `/etc/crontab` + +### 编辑crontab文件 + +- `crontab -e` 编辑crontab文件 +- `crontab -l` 列出crontab文件 +- `crontab -r` 删除crontab文件 + +### crontab命令格式 + +```sh +* * * * * command_to_execute # command_to_execute 可以是命令也可以是包含命令的文件 +- - - - - +| | | | | +| | | | +----- 星期几 (0 - 7) (星期天 = 0 或 7) +| | | +------- 月份 (1 - 12) +| | +--------- 日期 (1 - 31) +| +----------- 小时 (0 - 23) ++------------- 分钟 (0 - 59) + +``` + +### 特殊符号 + +- `*` 任何值 +- `*/n` 每n个单位 +- `,` 值列表 +- `-` 范围 +- `n-m` 范围 +- `n1,n2,n3` 值列表 +- `w` 工作日 (Monday - Friday) + +### 3.6 注意事项 + +1. **路径问题**:Cron任务运行时使用的环境变量可能与用户的交互式Shell不同,确保在脚本中使用绝对路径。 +2. **权限问题**:确保脚本具有可执行权限,并且Cron任务的用户有权限执行该脚本。 diff --git "a/\351\231\266\345\256\227\350\261\252/\347\273\203\344\271\240/\345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" "b/\351\231\266\345\256\227\350\261\252/\347\273\203\344\271\240/\345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..0523e03036a4cbd05bcb602faa1c4392809a1f9e --- /dev/null +++ "b/\351\231\266\345\256\227\350\261\252/\347\273\203\344\271\240/\345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" @@ -0,0 +1,153 @@ +### 周期任务练习 + +执行在家目录touch a.txt + +1. 每天3:00执行一次 + + ```sh + 0 3 * * * echo '命运' >> home/tzh666/a.txt + ``` + +2. 每周六2:00执行 + + ```sh + 0 2 * * 6 echo '命运' >> home/tzh666/a.txt + ``` + +3. 每周六1:05执行 + + ```sh + 5 1 * * 6 echo '命运' >> home/tzh666/a.txt + ``` + +4. 每周六1:25执行 + + ```sh + 25 1 * * 6 echo '命运' >> home/tzh666/a.txt + ``` + +5. 每天8:40执行 + + ```sh + 40 8 * * * echo '命运' >> home/tzh666/a.txt + ``` + +6. 每天3:50执行 + + ```sh + 50 3 * * * echo '命运' >> home/tzh666/a.txt + ``` + +7. 每周一到周五的3:40执行 + + ```sh + 40 3 * * 1-5 echo '命运' >> home/tzh666/a.txt + ``` + +8. 每周一到周五的3:41开始,每10分钟执行一次 + + ```sh + 41-59/10 3 * * 1-5 echo '命运' >> home/tzh666/a.txt + */10 4-23.59,0-3 * * 1-5 echo '命运' >> home/tzh666/a.txt + ``` + +9. 每天的10:31开始,每2小时执行一次 + + ```sh + 31 10-23/2 * * * + 31 0-9/2 * * * + ``` + + + +10. 每周一到周三的9:30执行一次 + + ``` + 30 9 * * 1-3 + ``` + + + +11. 每周一到周五的8:00,每周一到周五的9:00执行一次 + + ``` + 0 8 * * 1-5 + 0 9 * * 1-5 + ``` + + + +12. 每天的23:45分执行一次 + + ``` + 45 23 * * * + ``` + + + +13. 每周三的23:45分执行一次 + + ``` + 45 23 * * 3 + ``` + + + +14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次 + + ``` sh + ## 9:25到11:35 + 25-59/10 9 * * 1-5 #9.25-10 + */10 10-11 * * 1-5 #10-11 + 0-35/10 11 * * 1-5 #11 + ===================== + ## 13:00到15:00之间 + */10 13-14 * * 1-5 # 1-2 + *-50/10 15 * * 1-5 # 3,由于是每隔10分钟执行一次即15.50后就跳至4点不符合题意 + + ``` + + + +15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次 + + ```sh + + 30 8 * * 1-5 + 50 8 * * 1-5 + 30 9 * * 1-5 + 0 10 * * 1-5 + 30 10 * * 1-5 + 0 11 * * 1-5 + 30 11 * * 1-5 + 30 13 * * 1-5 + 0 14 * * 1-5 + 0 15 * * 1-5 + ``` + + + +16. 每天16:00、10:00执行一次 + + ``` + 0 16 * * * + 0 10 * * * + ``` + +17. 每天8:10、16:00、21:00分别执行一次 + + ``` + 10 8 * * * + 0 16 * * * + 0 21 * * * + ``` + + + +18. 每天7:47、8:00分别执行一次 + +``` +47 7 * * * +0 8 * * * +``` +