linux服务器定时清理日志文件,linux系统下用crontab定时清除日志文件

在应用服务器上,我们常常需要定时清理文件,尤其是日志,这时候就需要用到Linux自带的用于例行性工作调度的at和crontab两个命令了。其中at是仅执行一次的命令,这次先不谈,而crontab是循环执行的,符合定时清理文件的需求。

cron这个系统服务是默认启动的,当用户用crontab这个命令新建工作调度后,该项工作就会被记录到/var/spool/cron/里面去了,而且是以账号作为判别,比如kindy使用crontab后,他的工作被记录到/var/spool/cron/kindy里面去。这个文件不能直接用vi编辑,而需要借助命令crontab.

crontab [-u username] [-l|-e|-r]

-u 只有root可以执行这个任务,不常用

-e 编辑crontab工作内容,常用!

-l 查阅crontab工作内容,常用!

默认情况下,任何用户只要不被列入/etc/cron.deny中,那么他就可以执行crontab -e去编辑自己的定时任务了

如果要定时清除的日志是已知的固定路径下的文件,比如/*/logs,我们规定每天23:59定时去清除最后修改时间在7天以前的文件,那么首先编辑任务:

crontab -e

进入后会看到每项工作的格式是怎么定义的,然后按需求直接写任务:

23 59 * * * root find /*/logs -name 'catalina.out*.log' -and -mtime +7 -type f |xargs rm

再退出,以后就会定时执行啦~

后来实际工作中接触一个每周重新全量拉取数据的需求,这个频率不是每天,而且依赖度也不强所以不适合放在airflow平台上,就用crontab调抽数的脚本进行更新。使用方式是直接在脚本所在的服务器上输入crontab -e 然后加入下面的命令。

# every Friday 17:30

30 17 * * 5 source /etc/profile; sh /var/lib/hadoop-hdfs/script/stg_table.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值