Linux 系统定时任务

前言

上文出现zookeeper定时扩容的情况,在日常情况下需要定时备份最新的几份zookeeper的快照日志与事务日志。直接使用Linux的定时备份即可。另外常见使用Linux定时任务清理测试日志,实际生产会使用filebeat等收集归档。

Linux定时crontab

crontab是Linux的系统级命令,笔者以Ubuntu 20.04.1为例,命令位于/bin目录

可以看到这个命令的各种参数,其中最常见的参数

       crontab -l     //显示当前用户的crontab任务
  crontab -r    //删除当前用户的crontab任务
  crontab -e   //编辑当前用户的crontab任务

注意每个用户都可以有独立的crontab任务运行。

crontab用法

crontab的配置有用户级,系统级。系统级的配置在/etc/crontab文件

可以看到crontab是分钟级调度,用法已经有详细的说明了。果然官方配置就是最好的文档。我们自己最好不要修改系统级,直接通过crontab -e修改即可

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

run-parts --report /etc/cron.hourly 这里表示去执行/etc/cron.hourly下面的脚本

末尾的参数是命令或者脚本

shell脚本编写实现

假设我要找到5天前的日志,并删除

find 路径 -mtime +天数 -name "文件名" -exec rm -rf {} \;

-mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-exec 可以执行命令,包括cp -R  cp -f等,等同于ok

那么就可以crontab -e

0 1 * * * find /xxx/xxx/xxx -mtime +5 -name "*.log" -exec rm -rf {} \;

:wq保存即可

也可以在某个位置写个shell脚本,通过执行脚本来达到目的,方便在多台机器复制,或者在容器中制作镜像。

 

总结

Linux的crontab定时任务在某些不是特别重要的场景还是很实用的,当然如果是做分布式调度系统,最好使用时间轮、延迟队列等方式做到秒级,毫秒级调度。当然这个就很复杂了,需要监控,管理,日志输出,动态更新等相关功能建设,实现平台化能力建设才行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值