亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

linux批量備份服務器配置文件和目錄的腳本

2020-07-27 19:22:22
字體:
來源:轉載
供稿:網友

功能:
1. 只在備份機執行,遠程的服務器只需要允許備份機用root通過密鑰登錄;
2. 在備份機上配置需要備份哪些服務器,在NEED_BACKUP_SERVERS這個數組增減;
3. 在備份機上配置需要備份服務器上哪些文件,在NEED_BACKUP_DETAIL這個數組增減,如果需要備份某臺服務器上NEED_BACKUP_DETAIL數組里定義的某個文件就備份,不存在的文件則自動跳過,例如Web服務器上沒my.cnf , 也沒有影響;
4. 如果服務器上產生的新備份和已經存在已往備份內容一樣則只保留時間較早的備份。因為服務器的配置文件不是經常改動的;
5. 通過修改定義KEEP_BACKUP_NUM為個變量,可以決定遠程服務器上保留最近多少份備份,我這里定義的是10份。備份機上保留所有遠程服務器的備份。因為配置文件都比較小,不用擔心磁盤空間占用問題。

用過下列技術:
1. 獲取遠程服務器IP,如果某臺服務器沒有公網IP則使用該服務器的“主機名_IP.備份年月日_備份時間.tar.gz
2. 通過循環、判斷,對數組中的元素重新賦值;

下載之后請留意版本號和更新日志。

復制代碼 代碼如下:

#!/bin/bash
##################################################################
# Backup_Config_Files_Of_Remote_Servers
# Env: Centos 5.5 x86_64
# Created by Hernan on 2011-04-06
# Copyright 2010 __Chengyongxu.com__. All rights reserved.
#
# Version: 1.4.6
# Revision History
##################################################################

# Local Tmp Dir Of This Script
THIS_SCRIPT_TMP=/tmp/Do_at_remote_server.sh
THIS_SCRIPT_TMP_NAME=`echo $THIS_SCRIPT_TMP|awk -F/ '{print $NF}'`
# Local Backup Dir
LOCAL_BACKUP_DIR=/tmp/IDC_config_backup

# Need Backup Servers And Files List
REMOTE_SERVER_TMP_DIR=/tmp/Backup_server_config_files_tmp
NEED_BACKUP_SERVERS=(/
10.0.0.52
server_a_ip /
server_b_ip /
server_c_ip /
server_d_ip /
chengyongxu.com /
)
NEED_BACKUP_DETAIL=(/
/etc/hosts /
/etc/httpd/conf/*.conf /
/etc/httpd/conf.d/*.conf /
/etc/keepalived/keepalived.conf
/etc/my.cnf /
/etc/postfix /
/root/bin/*sh /
/usr/local/nagios/etc/nagios.cfg /
/usr/local/nagios/etc/objects/*cfg /
/usr/local/nginx/conf /
/usr/local/php/etc/php.ini /
/usr/local/php/etc/php-fpm.conf /
/usr/local/php-fcgi/etc/php.ini /
/usr/local/php-fcgi/etc/php-fpm.conf /
/usr/local/sphinx/etc/*.conf /
/var/spool/cron /
)
KEEP_BACKUP_NUM=10

SSH_PORT=22
SSH_USER=root

##################################################################
#
# Global Functions
#
##################################################################

#========= !!!! Warning ! Don't edit next function !!!! =========#
# Create Script Tmp File
Create_Script (){
cat << EOF > $THIS_SCRIPT_TMP
#!/bin/bash

NEED_BACKUP_DETAIL=(${NEED_BACKUP_DETAIL[*]})

# How many nums the backup needed
BAKNUM=$KEEP_BACKUP_NUM

REMOTE_SERVER_TMP_DIR=$REMOTE_SERVER_TMP_DIR
SERVER_IP=/`/sbin/ifconfig|grep "inet addr"|cut -f 2 -d ":"|cut -f 1 -d " "|grep -vE "^10.|^127|^172.16|^192.168"/`
BACKUP_TIME=/`date +%Y%m%d_%H%M/`

##################################################################
#
# Compress NEED_BACKUP_DETAIL
#
##################################################################
# If IPv4 private address only, use hostname.ip
if [ -z /$SERVER_IP ]
then
    SERVER_IP=/`hostname/`_/`/sbin/ifconfig|grep "inet addr"|cut -f 2 -d ":"|cut -f 1 -d " "|grep -vE "^127"|head -n 1/`
fi

# Create Tpm dir
if [ ! -d /$REMOTE_SERVER_TMP_DIR ]
then
    mkdir -p /$REMOTE_SERVER_TMP_DIR
fi

# Compress
for file in /${NEED_BACKUP_DETAIL[*]}
do
    # When you want to backup the file exists,
    #   assign to an element of the new array
    while [ -e /$file ]
    do
        NEED_BACKUP_DETAIL_EXISTS[/$num]=/$file
        let num++
    break
    done
done
tar zcfpP /$REMOTE_SERVER_TMP_DIR//$SERVER_IP./$BACKUP_TIME.tar.gz /${NEED_BACKUP_DETAIL_EXISTS[*]}

##################################################################
#
# If files are the same,keep one only
#
##################################################################
NEW_BACKUP_ARCHIVE_CONTENT=/`tar tvf /$REMOTE_SERVER_TMP_DIR//$SERVER_IP./$BACKUP_TIME.tar.gz/`
for backfile in /`ls /$REMOTE_SERVER_TMP_DIR | grep tar.gz |grep -v /$SERVER_IP./$BACKUP_TIME/`
do
    OLD_BACKUP_ARCHIVE_CONTENT=/`tar tvf /$REMOTE_SERVER_TMP_DIR//$backfile/`
    while [ "/$NEW_BACKUP_ARCHIVE_CONTENT" = "/$OLD_BACKUP_ARCHIVE_CONTENT" ]
    do
        rm -rvf /$REMOTE_SERVER_TMP_DIR//$SERVER_IP./$BACKUP_TIME.tar.gz 1 >> /$REMOTE_SERVER_TMP_DIR/delete_new.log
    break
    done
done

##################################################################
#
# Keep Some Backup Files Newest
#
##################################################################
count=0
for name in /`ls /$BAKPATH/ |grep -E '[0-9]{6,6}' | sort -r/`
do
  count=/$((count+1))
  if [ /$count -gt /$BAKNUM ] ; then
    echo -n "Cleaning old backup: /$name... "
      if [ "/$BAKPATH//$name" = "/" ] ; then
        echo "No rm -rf /!"
        exit 1
      fi
      rm -rf /$BAKPATH//$name
    echo " Done."
  else
    echo "Keeping old backup: /$name"
  fi
done
exit
EOF
}

Copy_Script_To_Remote (){
for server in ${NEED_BACKUP_SERVERS[*]}
do
ssh -p $SSH_PORT -tt $SSH_USER@$server << EOT
mkdir -p $REMOTE_SERVER_TMP_DIR
exit
EOT
scp -P $SSH_PORT $THIS_SCRIPT_TMP $SSH_USER@$server:$REMOTE_SERVER_TMP_DIR/
done
}

Backup_On_Remote_Then_Copy_Back (){
for server in ${NEED_BACKUP_SERVERS[*]}
do
ssh -p $SSH_PORT -tt $SSH_USER@$server << EOP
chmod o+x $REMOTE_SERVER_TMP_DIR/$THIS_SCRIPT_TMP_NAME
sh $REMOTE_SERVER_TMP_DIR/$THIS_SCRIPT_TMP_NAME
rm -f $REMOTE_SERVER_TMP_DIR/$THIS_SCRIPT_TMP_NAME
exit
EOP
rsync -e "ssh -p $SSH_PORT" $SSH_USER@$server:$REMOTE_SERVER_TMP_DIR/*tar.gz $LOCAL_BACKUP_DIR/
done
}

##################################################################
#
# Main
#
##################################################################
#
Create_Script
Copy_Script_To_Remote
Backup_On_Remote_Then_Copy_Back
rm -rf $THIS_SCRIPT_TMP

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人在线视频福利| 久久免费国产精品1| 亚洲xxxx妇黄裸体| 国产色综合天天综合网| 亚洲最大av网站| 国产精品ⅴa在线观看h| 国产乱人伦真实精品视频| 91av视频在线观看| 九九久久综合网站| 91精品久久久久久久久久入口| 欧美激情aaaa| 插插插亚洲综合网| 伊人亚洲福利一区二区三区| 欧美又大又硬又粗bbbbb| 欧美国产亚洲精品久久久8v| 欧美日韩中国免费专区在线看| 日本精品视频网站| 国产精品av在线| 亚洲精品国产suv| 国产精品久久久久久久久借妻| 国产午夜精品一区理论片飘花| 欧洲精品在线视频| 欧美自拍大量在线观看| 日韩av在线影视| 欧美色xxxx| 精品亚洲国产视频| 国产精品扒开腿做爽爽爽的视频| 欧美一区二区视频97| 亚洲第一精品久久忘忧草社区| 91国内揄拍国内精品对白| 国产精品视频精品视频| 欧美日韩ab片| 久久99视频精品| 欧美富婆性猛交| 人人爽久久涩噜噜噜网站| 成人h片在线播放免费网站| 亚洲永久免费观看| 深夜福利日韩在线看| 亚洲精品影视在线观看| 成人久久一区二区| 欧美黑人视频一区| 亚洲成人精品视频在线观看| 欧美成人精品h版在线观看| 国产精品自拍小视频| 日本久久久久久久| 正在播放亚洲1区| 日韩免费在线电影| 欧美另类老肥妇| 欧美久久精品一级黑人c片| 久久久久久久久网站| 黑人巨大精品欧美一区二区免费| 国产精品中文在线| 国产亚洲欧美日韩一区二区| 91精品国产91久久久久久最新| 国产中文字幕91| 亚洲一区美女视频在线观看免费| 欧美床上激情在线观看| 777777777亚洲妇女| 久久精品久久精品亚洲人| 亚洲最大福利网站| 亚洲精品国产精品国产自| 91九色在线视频| 伊人久久综合97精品| 亚洲高清一区二| 欧美高清自拍一区| 91久久久国产精品| 国产精品自拍视频| 人人澡人人澡人人看欧美| 97超级碰在线看视频免费在线看| 亚洲香蕉伊综合在人在线视看| 欧美丝袜美女中出在线| 国产91精品视频在线观看| 亚洲视频在线观看| 久久久日本电影| 91在线视频导航| 精品少妇v888av| 国产精品自产拍在线观| 国内精品久久久久久中文字幕| 亚洲影视九九影院在线观看| 国产精品偷伦视频免费观看国产| 国产精品av在线播放| 国产一区欧美二区三区| 欧洲成人性视频| 国产精品美女主播| 国产精品久久久久免费a∨大胸| 国产精品综合不卡av| 中文字幕亚洲欧美一区二区三区| 97碰在线观看| 亚洲欧美资源在线| 欧美性视频网站| 高清一区二区三区四区五区| 欧美激情视频网址| 欧美精品第一页在线播放| 欧美大全免费观看电视剧大泉洋| 久久香蕉国产线看观看网| 国产精品精品久久久| 91久久精品久久国产性色也91| 日韩av在线资源| 国产精品久久久久久影视| 欧美精品成人91久久久久久久| 91精品国产99久久久久久| 亚洲欧美激情另类校园| 亚洲理论片在线观看| 92版电视剧仙鹤神针在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 97碰碰碰免费色视频| 91香蕉亚洲精品| 欧美孕妇毛茸茸xxxx| 性欧美xxxx视频在线观看| 国产日产久久高清欧美一区| 91免费观看网站| 成人亚洲激情网| 国产精品第100页| 91精品国产精品| 亚洲欧美日韩一区二区在线| 日韩中文字幕亚洲| 欧美夜福利tv在线| 久久99久久久久久久噜噜| 国内精品久久久久影院 日本资源| 夜夜嗨av一区二区三区免费区| 96精品久久久久中文字幕| 国产成人高潮免费观看精品| 另类视频在线观看| 国产精品扒开腿做| 青青草原成人在线视频| 日韩电影免费在线观看中文字幕| 91美女福利视频高清| 欧美国产极速在线| 亚洲自拍另类欧美丝袜| 欧美精品亚州精品| 欧美日韩一区二区三区| 久久视频这里只有精品| 国产精品激情av电影在线观看| 激情久久av一区av二区av三区| 琪琪亚洲精品午夜在线| 成人在线视频福利| 欧美日韩国产成人在线观看| 久久乐国产精品| 91av在线影院| 日韩大胆人体377p| 91精品国产91久久久久久久久| 91人人爽人人爽人人精88v| 欧美日韩国产在线| 中文字幕一区二区精品| 亚洲奶大毛多的老太婆| 亚洲欧美日韩一区二区在线| 国产精品吊钟奶在线| 一本大道香蕉久在线播放29| 高跟丝袜一区二区三区| 日韩av在线免费观看| 日本精品久久久| 亚洲自拍小视频免费观看| 国产一区二区三区在线| 精品一区二区三区四区在线| 欧美成人午夜激情| 色老头一区二区三区在线观看| 久久精品国亚洲| 国内精品久久久久影院 日本资源| 日韩av三级在线观看| 欧美wwwxxxx| 久久久久999| 国外成人在线播放| 国产69精品久久久| 亚洲第一页自拍|