以前工作中写的日志备份的脚本,现记录一下日志备份脚本代码,以后工作中遇到遇到需要备份或者清理日志的时候可以拿来简单修改一下使用,减少工作量。
把备份脚本添加到Linux定时任务中,可以定时执行。
日志备份代码如下:
#!/bin/sh #文件名 log_backup.sh echo "====================================================================================" echo 当前时间为$(date) . ~/.bash_profile if [ -d ${SVC_PGW_BACKUP_PATH}/SVC_BAK_LOG_files ]; then echo "备份文件目录已存在" else mkdir -pv ${SVC_PGW_BACKUP_PATH}/SVC_BAK_LOG_files fi echo "开始备份日志文件" export LANG="en_US.UTF-8" tarName=$(date +%Y%m%d%H%M%S) #日志打成tar.gz的文件名 undelname=$(date -I) #以当天日期 cd $SVC_PGW_LOG_PATH #进入log目录 echo "显示当前目录 $(pwd)" echo "已进入到日志目录" oldfile=$(find $SVC_PGW_LOG_PATH -type f -mtime +7 -name "*.log.*"|awk -F '.' '{if($NF!=undelname) {print $0}}' undelname=$undelname) #查找所有带日期的且日期不是当天的log文件 echo "所需要备份的日志文件" echo -e $oldfile if [ ! -n "$oldfile" ]; then echo "此次没有需要备份的日志" echo "=====================================================================================" exit 0 else echo "此次有需要备份的日志" fi echo "日志文件备份中。。。。。。" tar -Pzcvf $SVC_PGW_BACKUP_PATH/SVC_BAK_LOG_files/${tarName}.tar.gz $oldfile echo "备份日志 所存储的具体路径"${SVC_PGW_BACKUP_PATH}/SVC_BAK_LOG_files/${tarName}.tar.gz if [ -f ${SVC_PGW_BACKUP_PATH}/SVC_BAK_LOG_files/${tarName}.tar.gz ]; then rm -rf $oldfile echo "backup success complete!" else echo "backup fail!" fi echo "=====================================================================================" exit 0