#!/bin/bash

# 检查目录是否存在
if [ ! -d "/data/logs" ]; then
  mkdir -p /data/logs
  echo "创建日志目录成功!"
fi

# 备份日志文件
cp /var/log/messages /data/logs/messages.bak
echo "备份日志文件成功!"

# 清空日志文件
> /var/log/messages
echo "清空日志文件成功!"

# 将新生成的日志文件压缩
gzip /data/logs/messages.bak
echo "压缩日志文件成功!"

# 删除7天前的日志文件
find /data/logs/ -name "*.bak.gz" -type f -mtime +7 -exec rm {} \;
echo "删除7天前的日志文件成功!"

exit 0

上述脚本用于在Linux环境下实现日志文件的备份、清空、压缩和自动删除等操作。通过Shell编写自动化脚本,可以大大简化系统维护工作,提高开发效率。

脚本中使用了if语句判断目录是否存在,如果不存在则创建目录。接着使用cp命令备份日志文件,并使用>命令清空原日志文件。随后,使用gzip命令将备份的日志文件压缩,以节省存储空间。使用find命令查找7天前的备份文件,并通过-exec参数执行删除操作。

在实际使用过程中,可以将该脚本设定为定时任务,定期执行日志文件的自动化操作。通过结合Linux系统的强大功能和Shell编程的灵活性,可以轻松实现各种自动化任务的编写与执行。