20.定时任务专题

1.定时任务

1.什么是定时任务
       闹钟/每天定时 7点半 8点
      在固定的时间做什么事情。
2.定时任务作用
      固定时间时间同步
      数据备份(备份的服务器) 重要的数据保留3份 公司备份服务器 笔记本 移动硬盘 网盘一份
        先打包然后再备份(代码文件 上百个 上千个) 占用磁盘io 降低传输速度 i input  o output
      日常工作需求
                 日志切割 防止日志太大
                 /var/log/nginx.log
                 mv /var/log/nginx  /var/log/nginx-2024-11-18.log
                 监控取值+监控
                 定时执行脚本
                 辅助程序运行
                 .....   

2.关于定时任务的目录和配置文件

  • 星后面的root代表已root权限执行定时任务
目录说明格式,用法
/etc/crontab系统定时任务配置文件* * * * * root 命令或脚本
/var/spool/cron/root 或者 crontab -eroot用户做定时任务的配置文件 默认是没有的,PATH变量少需要配置* * * * * 命令或者脚本
/var/log/cron红帽系定时任务日志文件
/var/log/syslogubt系定时任务日志文件

3.定时任务符号含义

  • crontab -l 查看用户定时任务
  • * * * * * 分 时 日 月 周
标识符说明
第一颗星分 0 – 59 01或者写1表示1分钟 0表示整点
第二颗星时 0 – 23 00或者写0 表示凌晨12点
第三颗星日 1 – 31
第四颗星月 1 – 12 1-12月份
第五颗星周 0 – 6 0或者7表示星期天
特殊符号说明
/表示间隔的意思 */5 或 */05 表示间隔5分钟执行一次
*表示每的意思 如果是五颗星表示每分钟都要执行一次定时任务
– 杠7-11 表示上午7点到上午的11点
, 逗号7-11,13-15 上午7点到11点和下午的1点到3点执行
%百分号定时任务不识别% 需要加撬棍\ 或者将命令写入到脚本中,定时任务执行脚本

4.定时任务怎么写,案例

  • 星后面的root代表以root权限执行定时任务
  • 五颗星: 星和星之间必须有空格
  • 系统定时任务和用户定时任务的区别: ​
    • 用户配置定时任务不需要添加用户 例如: * * * * * pwd 本身用户权限 ​
    • 配置文件不同,默认用户配置文件没有crontab -e 编辑会自动创建 ​
    • 用户配置文件需要自己设置PATH变量,否则命令少 ​
    • 用户定时任务crontab -e 编辑如果语法错误无法保存
  • 1.系统定时任务使用方法: ​ * * * * * 用户 命令或脚本
  • 2.用户定时任务使用方法 ​ * * * * * 命令或脚本
---系统定时任务案例:
		配置文件/etc/crontab
案例1.每5分钟执行一个echo oldboy >> oldboy.txt   # 默认文件不写路径 则会在家目录生成/root/
*/5 * * * * root echo oldboy >> oldboy.txt

案例2.每小时的第5分钟执行一次定时任务echo test > /dev/null
05 * * * * root echo test > /dev/null

案例1.每分钟执行一次定时任务echo oldboy >> oldboy.txt
* * * * * root echo oldboy >> oldboy.txt

案例3.每天的7-11点每分钟执行一次
* 7-11 * * *

案例4.每天的7-11点每小时执行一次
00 7-11 * * *

案例5.凌晨12点执行一个命令
00 00 * * *

案例6.每天的7-11点13-15点和每小时执行一次
00 7-11,13-15 * * *

案例7.每分钟打包/etc/hosts /etc/passwd 名称为etc.tar.gz 放到/opt目录
* * * * * root tar /opt/etc.tar.gz   /etc/hosts /etc/passwd

案例8.每分钟打包/etc/hosts /etc/passwd 名称为时间+etc.tar.gz放到/opt目录
* * * * * root tar zcf /opt/`date +\%F`+etc.tar zcf.tar.gz   /etc/hosts /etc/passwd

案例9.将脚本写入到定时任务每分钟执行
* * * * * root /root/xx.sh

案例10.每间隔5分钟执行1次时间同步。
*/5 * * * * root ntpdate ntp2.aliyun.com

---用户定时任务案例:
		注意用户的定时任务默认识别的PATH变量只有/usr/bin和/bin路径 需要重新配置PATH变量
		/var/spool/cron/root 或者  crontab  -e
案例1.用户定时任务创建每分钟执行一个echo的动作
* * * * * echo

案例1.每5分钟执行一次时间同步
*/5 * * * * ntpdate ntp2.aliyun.com

案例1.每5分钟执行一次时间同步,留输出内容,和不保留输出内容
*/5 * * * * ntpdate ntp2.aliyun.com &>>/root/ntp.log
*/5 * * * * ntpdate ntp2.aliyun.com &>/dev/null

案例1.entos7定时清理大于7天的文件/var/spool/postfix/maildrop/
* * * * * find /var/spool/postfix/maildrop/ -type f -mtime +7 | xargs rm -f

案例1.以每天为时间+ip地址+主机名称在/opt/创建目录
00 00 * * * mkdir `date +\%F-\%H-\%M-\%S`---`ip a | sed -rn 's#^.*inet (.*)/24 brd.*3$#\1#g p'`---`hostname`


案例1.打包/etc/passwd /etc/hosts文件名称为etc.tar.gz 放到上面案例已经创建好的目录中
* * * * *  tar zcf /root/`date +\%F-\%H-\%M-\%S`---`ip a | sed -rn 's#^.*inet (.*)/24 brd.*3$#\1#g p'`---`hostname`/etc.tar.gz /etc/passwd /etc/hosts

案例1.查找/opt/目录下所有7天前被修改过的文件删除  (模拟环境使用循环生成需要的文件)
* * * * * find /opt/ -type f -mtime +7 | xargs rm -f
温馨提示:
        使用centos,如果关闭了邮件服务,每执行一次定时任务,会自动生成一个小文件,小文件会占用inode号码
        [root@linuxnc ~]# systemctl stop postfix
        定时清理下面目录:
        /var/spool/postfix/maildrop/
        将定时任务执行的结果定向到文件或者空。

5.定时任务注意事项

  1. 避免一些不必要的输出 类似tar -zcf 去掉v 类似打包进入相对路径
  2. 多条命令使用脚本
  3. 直接写到定时任务配置文件中不识别% 需要加\ 或者写入脚本。
  4. 用户定时任务识别的路径只有/usr/bin和/bin目录 需要重新定义PATH变量
  5. 将定时任务结果定向到文件中可以排查问题
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇