以前工作中寫的日志備份的腳本,現記錄一下日志備份腳本代碼,以后工作中遇到遇到需要備份或者清理日志的時候可以拿來簡單修改一下使用,減少工作量。
把備份腳本添加到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
