linux定时任务脚本

📅 2026/8/27 11:38:00
linux定时任务脚本
#!/bin/bash # 带完整日志的清理脚本 SCRIPT_LOG/var/log/cleanup_app_logs.log LOG_DIR/home/app/logs BACKUP_DIR/backup/app_logs KEEP_DAYS7 BACKUP_KEEP_DAYS30 # 日志函数 log() { echo [$(date %Y-%m-%d %H:%M:%S)] $1 | tee -a $SCRIPT_LOG } # 记录开始 log log 开始执行清理任务 log 目标目录: $LOG_DIR log 备份目录: $BACKUP_DIR log 保留天数: $KEEP_DAYS 天 # 检查目录是否存在 if [ ! -d $LOG_DIR ]; then log 错误: 目录 $LOG_DIR 不存在 log 任务终止 exit 1 fi # 创建备份目录 mkdir -p $BACKUP_DIR log 备份目录已创建 # 压缩大文件 log 正在查找大文件100M${KEEP_DAYS}天... find $LOG_DIR -name *.log -size 100M -mtime $KEEP_DAYS -exec gzip -v {} \; 21 | while read line; do log $line done # 移动压缩包 log 正在移动压缩文件... find $LOG_DIR -name *.gz -mtime $KEEP_DAYS -exec mv -v {} $BACKUP_DIR/ \; 21 | while read line; do log $line done # 删除过期备份 log 正在清理过期备份${BACKUP_KEEP_DAYS}天... find $BACKUP_DIR -name *.gz -mtime $BACKUP_KEEP_DAYS -delete -print 21 | while read line; do log 删除: $line done # 记录结果 log 清理完成 log 日志目录大小: $(du -sh $LOG_DIR | cut -f1) log 备份目录大小: $(du -sh $BACKUP_DIR | cut -f1) log # 1. 给脚本添加执行权限 sudo chmod x /usr/local/bin/cleanup.sh # 2. 编辑 root 的定时任务 sudo crontab -e # 3. 添加这一行每天凌晨2点执行 0 2 * * * /usr/local/bin/cleanup.sh /var/log/cleanup.log 21