最后冰吻free 2017-10-26 13:43 采纳率: 0%
浏览 384

定时备份和删除日志脚本遇到问题

比如在$HOME/log下中日志文件都进行打包到$HOME/backup/log/20171026.tar.gz,如果日志目录下日志很大、很多,打包压缩用时30秒,完成之后删除日志目录下文件,但由于这30s内又有新的日志生成,直接删除导致新生成30s日志丢失,有什么好的办法吗,谢谢[没有c币]

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 02:36
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,我们可以使用Linux的cp命令来复制旧的日志文件,并使用tar命令将它们打包成一个gzip格式的文件。这样可以避免在每次日志更新时都重新创建整个日志文件。

    以下是一个示例脚本,它会定期(例如每天)将旧的log文件复制到一个新的备份文件中:

    #!/bin/bash
    
    # 设置日期和时间
    DATE=$(date +%Y%m%d)
    
    # 创建备份文件名
    BACKUP_FILE="$HOME/backup/log/$DATE.tar.gz"
    
    # 检查备份文件是否存在,不存在则创建
    if [ ! -f "$BACKUP_FILE" ]; then
        # 复制旧的log文件到备份文件
        cp $HOME/log/* "$BACKUP_FILE"
    else
        echo "Backup file already exists, skipping..."
    fi
    
    # 删除旧的log目录下的所有文件
    rm -rf $HOME/log/*
    
    echo "Backup complete. New log files will be created in $HOME/backup."
    

    这个脚本首先检查备份文件是否已经存在。如果没有,则复制所有的日志文件到备份文件中。然后删除旧的日志目录下的所有文件。

    注意:这个脚本是基于你提供的信息写的,如果你的日志文件很大或者有很多文件,那么可能需要对这个脚本做一些调整以适应你的具体需求。

    评论

报告相同问题?