shell脚本清理日志内容保留文件
2021-11-11 本文已影响0人
巴鶴
测试工作经常需要Jenkins构建,有时提示空间不足,我们需要定期去清理日志,部分日志文件是不能直接删除,如果服务器部署多个项目,每个项目都有很多日志,甚至个别文件很大,此时手动打开文件,人为去删除效率很慢.故需要借助shell脚本去定期清理日志内容. 详细操作步骤如下:
步骤1: 创建文件
touch /testlog/del-2-days-ago-log.sh
步骤2: 赋予权限
![](https://img.haomeiwen.com/i2591421/bfd9862a309608b0.png)
步骤3:shell文件中添加脚本
vim /testlog/del-2-days-ago-log.sh
![](https://img.haomeiwen.com/i2591421/d096ea59c6e9d771.png)
步骤4:输入i 进入编辑模式
步骤5: 输入命令
![](https://img.haomeiwen.com/i2591421/551dd6d73ea20415.png)
#/bin/bash
for i in `find /testlog -name "*.log"`
do
cat /dev/null > $i
done
命令延伸知识
删除/opt目录下所有的日志文件
find /opt -name *.log.* | xargs rm -rf
查看/opt目录下,所有日志文件及大小
find /opt -name *.log | xargs du -sh
查找目录下的.log后缀的文件,并清空文件内容(这里不是删除文件)
find /opt -name *.log -exec cp /dev/null {} \;
步骤6: ESC 退出编辑模式
步骤7: :wq!保存离开
步骤8: 查看定时任务是否安装
systemctl status crond
![](https://img.haomeiwen.com/i2591421/30512df2dc4f35da.png)
查看crontab是否已安装
rpm -qa | grep crontab
![](https://img.haomeiwen.com/i2591421/019f7d207ca8eda1.png)
步骤9: crontab -e
![](https://img.haomeiwen.com/i2591421/8b1a9b147521e9e7.png)
步骤10: 输入定时脚本
定时5分钟执行一次
*/5 * * * * /testlog/del-2-days-ago-log.sh
步骤11: :wq!保存定时任务 提示添加成功
crontab: installing new crontab
注意:用crontab -e 编辑的定时任务三分钟之内是不会执行的,所以在测试的时候,至少时间后推三分钟!
步骤12: 查看定时任务日志是否执行
tail -f /var/log/cron
![](https://img.haomeiwen.com/i2591421/260ad1fb12a58e7c.png)
单个定时清理日志内容保留文件
![](https://img.haomeiwen.com/i2591421/a11c534b74002a3a.png)
批量清理日志内容保留文件
![](https://img.haomeiwen.com/i2591421/6da6817b5781e915.png)
步骤13: 查看已经创建的计划任务
crontab -l
![](https://img.haomeiwen.com/i2591421/efdb6b2f3bf3470f.png)
步骤14: 删除定时任务
- 进入计划服务配置界面
crontab -e
- 删除计划任务
dd
- 保存并退出
:wq!
- 再次查看
crontab -l
![](https://img.haomeiwen.com/i2591421/89a7929708727186.png)