linux 脚本 crontab 定时删除清理日志

本文介绍如何使用Linux命令find结合crontab实现日志文件的自动化清理,包括脚本创建、定时任务设置及常见命令解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:创建脚本

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

例如:
#!/bin/bash
find /usr/local/tomcat/logs/ -mtime +7 -name "*.log" -exec rm -rf {} \;

说明:
find:linux查找命令,用户查找指定条件的文件
/usr/local/tomcat/logs/:需要进行清理的目标目录
-mtime:标准语句写法
+10:数字代表天数
-name "*.log":目标文件的类型,带有log的所有文件
-exec:固定写法
rm -rf:强制删除包括目录在内的文件
{} \;:固定写法,一对大括号+空格+\+;

 

find /root -mtime +7 -type f -iname "*.log*" | xargs rm -rf

-atime : 按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime : 按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-mtime : 按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-amin : 同 -atime (单位:分钟)
-cmin : 同 -ctime (单位:分钟)
-mmin : 同 -mtime (单位:分钟)

-type b/d/c/p/l/f : 查是块设备、目录、字符设备、管道、符号链接、普通文件

-iname : 名字匹配忽略大小写

-name : 名字匹配区分大小写

二:定时任务

chmod +x del-log.sh 或 chmod 777 del-log.sh

#如果服务器没有安装crontab,先安装crontab
yum install -y vixie-cron

 

crontab -e
#每分钟执行一次(测试用)
*/1 * * * * /usr/local/xiao_sh/auto-del-log.sh >/dev/null 2>&1

#每天凌晨1点执行一次(生产环境)
0 1 * * * /usr/local/xiao_sh/auto-del-log.sh 

 

命令补充


crontab -u //设定某个用户的cron服务 
crontab -l //列出某个用户cron服务的详细内容 
crontab -r //删除某个用户的cron服务 
crontab -e //编辑某个用户的cron服务
crontab -i //打印提示,输入yes等确认信息

tail -f /var/log/cron //查看定时任务日志

 

cron服务是Linux的内置服务,但它不会开机自动启动,可以每分钟执行任务。可以用以下命令启动和停止服务:

/bin/systemctl start crond

/bin/systemctl stop crond

/bin/systemctl restart crond

/bin/systemctl reload crond

/bin/systemctl status crond    也可   service crond status

 

把cron设为在开机的时候自动启动

vi /etc/rc.local

/bin/systemctl start crond.service

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值