比如在$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."这个脚本首先检查备份文件是否已经存在。如果没有,则复制所有的日志文件到备份文件中。然后删除旧的日志目录下的所有文件。
注意:这个脚本是基于你提供的信息写的,如果你的日志文件很大或者有很多文件,那么可能需要对这个脚本做一些调整以适应你的具体需求。
解决 无用评论 打赏 举报