shell+定时备份审计记录

先用logrotate定期进行日志分割

#!/bin/bash
#在 多个目录下查找所有扩展名为 .log 或者 .txt 的文件,并且文件修改时间超过 180 天(即 6 个月)的文件会被删除
find "/path/to/directory1 /path/to/directory2 /path/to/directory3" -type f \( -name "*.log" -o -name "*.txt" \) -mtime +180 -exec rm {} \;
bak_dir='/var/backups/audit'             # 定义备份目录
bak_file="${bak_dir}/audit_$(date +%Y%m%d%H%M).tar.gz"   # 定义备份文件名
log_files=(                              # 定义要备份的日志文件和目录
  "/var/log/audit/audit.log"
  "/var/log/messages"
  "/var/log/secure"
  "/etc"
)

if [ ! -d "${bak_dir}" ]; then          # 如果备份目录不存在则创建
  mkdir -p "${bak_dir}"
fi

tar czf "${bak_file}" "${log_files[@]}"  # 打包备份文件

ls -tp "${bak_dir}" | grep -v "/$" | tail -n +6 | xargs -I {} rm "${bak_dir}/{}"  
# 删除旧备份文件,保留最新的5个

# -tp :按时间排序并显示详细信息
# grep -v "/$": 过滤掉目录(只保留文件)
# tail -n +2: 从第二行开始查找(以便跳过.文件夹)
# xargs -I {}: 将找到的文件名放在{}中,并传递给rm命令
# rm "${bak_dir}/{}" :删除找到的文件
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值