清理日志或文件的脚本
背景:我们的服务在运行中总会不停的输出日志,日积月累可能会占用大量磁盘空间,如果每次手动去清理又显得很不优雅,所以我们可以通过脚本去操作,只保留某一段时间内的日志文件。
脚本代码
- 服务器任意目录下创建
clearup_logs.sh
文件,内容如下:#!/bin/bash # 定义日志目录路径 LOG_DIR="/data/yfund-airflow-docker/logs" # 遍历目录下的每个文件夹 for dir in "$LOG_DIR"; do # 判断是否为文件夹 if [ -d "$dir" ]; then # 进入文件夹 cd "$dir" || continue # 执行 find 命令删除超过 15 天的文件 find ./* -type f -mtime +15 -exec rm {} + find ./* -type d -empty -exec rm -rf {} + fi done
- 给
clearup_logs.sh
文件添加可执行权限chmod +x cleanup_logs.sh # 添加可执行权限
- 执行脚本
./cleanup_logs.sh # 执行脚本
crontab自动化
注意:大前提是需要机器支持 crontab
# 每天00:30分执行一次脚本
30 0 * * * /data/logs/cleanup_logs.sh