posts - 122,  comments - 25,  trackbacks - 0
          現(xiàn)有需求如下:需對(duì)若干服務(wù)器做相同的環(huán)境配置,且配置工作相當(dāng)復(fù)雜,若人工一臺(tái)一臺(tái)的處理比較耗時(shí)且容易出錯(cuò)。我們可以考慮先完成一臺(tái)服務(wù)器的配置工作,確認(rèn)配置無(wú)誤后,再通過(guò)腳本,將相應(yīng)的配置工作同步到其他所有的服務(wù)器中。設(shè)有已完成配置的服務(wù)器:A (192.168.0.2) 和 待配置的服務(wù)器B ~ Z(192.168.0.101 ~ 126)。

          實(shí)現(xiàn)上述需求,關(guān)鍵有兩點(diǎn):1). 通過(guò)ssh信任登錄,避免每次同步時(shí)要求輸入密碼;2). 通過(guò)rsync命令實(shí)現(xiàn)服務(wù)器之間文件的同步。具體實(shí)現(xiàn)細(xì)節(jié)如下:

          1. 完成單向Trusted SSH Authorized
          首先在A產(chǎn)生public/private dsa key pair:
          ……………………………………………………………………………………………………
          [root@kplan-test3 .ssh]# ssh-keygen -d
          Generating public/private dsa key pair.
          Enter file in which to save the key (
          /root/.ssh/id_dsa):
          Enter passphrase (empty 
          for no passphrase):
          Enter same passphrase again
          :
          Your identification has been saved in 
          /root/.ssh/id_dsa.
          Your public key has been saved in 
          /root/.ssh/id_dsa.pub.
          The key fingerprint is
          :
          f3
          :47:3b:b0:2a:50:f8:77:7e:ca:29:85:e8:d9:05:9b root@kplan-test3
          [root
          @kplan-test3 .ssh]#
          ……………………………………………………………………………………………………

          完成上述命令后,會(huì)在系統(tǒng)/root/.ssh目錄生成兩個(gè)文件:id_dsa與id_dsa.pub。現(xiàn)在復(fù)制id_dsa.pub到B服務(wù)器,并更名為 authorized_keys2
          ……………………………………………………………………………………………………
          [root
          @kplan-test3 .ssh]# scp id_dsa.pub 192.168.0.101:/root/.ssh/authorized_keys2
          root@192.168.0.101's password:
          id_dsa.pub 100% |*****************************************************| 612 00:00
          [root@kplan-test3 .ssh]#
          ……………………………………………………………………………………………………

          如果上述步驟順利完成的話(huà),現(xiàn)在您可以執(zhí)行”ssh 192.168.0.101”,無(wú)需輸入登錄密碼,即可登錄到B服務(wù)器了。

          2.使用rsync 做Remote sync﹕
          rsync特性簡(jiǎn)介: rsync是unix-like系統(tǒng)下的數(shù)據(jù)鏡像備份工具,從命名上就可以看出來(lái)了remote sync。它的特性如下:
          1、可以鏡像保存整個(gè)目錄樹(shù)和文件系統(tǒng)。
          2、可以很容易做到保持原來(lái)文件的權(quán)限、時(shí)間等等。
          3、無(wú)須特殊權(quán)限即可安裝。
          4、優(yōu)化的流程,文件傳輸效率高。
          5、可以使用rcp、ssh等方式來(lái)傳輸文件,當(dāng)然也可以通過(guò)直接的socket連接。
          6、支持匿名傳輸。

          參數(shù)意義如下﹕
          -a, --archive
          It is a quick way of saying you want recursion and want to preserve almost everything.
          -v, --verbose
          This option increases the amount of information you are given during the transfer.
          -l, --links
          When symlinks are encountered, recreate the symlink on the destination.
          -R, --relative
          Use relative paths. 保留相對(duì)路徑...才不會(huì)讓子目錄跟 parent 擠在同一層...
          --delete
          是指如果Server端刪除了一文件,那客戶(hù)端也相應(yīng)把這一文件刪除,保持真正的一致。
          -e ssh
          建立起加密的連接。
          3、同步腳本
          創(chuàng)建腳本,實(shí)現(xiàn)自動(dòng)配置工作。
          ……………………………………………………………………………………………………
          [root
          @kplan-test3 backup]# vi install_env.sh
          #!/bin/bash

          WEBSERVER='kplan-test1 kplan-test2 kplan-test3'
          echo 
          "auto install envirment … ------------------------"
          for webserver in $WEBSERVER
          do
              echo 
          "install server:$webserver's envirment."
              echo 
          'transport file : /etc/profile & /etc/hosts'
              rsync 
          ---------e ssh --delete /etc/profile root@$webserver:/etc/profile
              rsync 
          ---------e ssh --delete /etc/hosts root@$webserver:/etc/hosts

              echo 
          'run shell command : /home/init_env.sh'
              ssh 
          --o StrictHostKeyChecking=no root@$webserver "/home/init_env.sh"
              ssh 
          --o StrictHostKeyChecking=no  root@$webserver "rm -f /home/init_env.sh"
              echo 
          " $webserver is end  ------------------------- "
          done
          sleep 1
          clear
          ……………………………………………………………………………………………………

          4、其他
          如果你想用來(lái)做自動(dòng)備份,則在crontab中加入備份腳本即可。如在每天0時(shí)0分做備份(設(shè)/root目錄下已有完成備份的腳本 backup.sh):
          ……………………………………………………………………………………………………
          [root
          @kplan-test3 backup]# crontab -e
          0 0 * * * /root/backup.sh
          ……………………………………………………………………………………………………



          posted on 2008-10-15 16:50 josson 閱讀(546) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Linux
          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(3)

          隨筆分類(lèi)

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 名山县| 紫金县| 德钦县| 图片| 南宫市| 长乐市| 双柏县| 仙居县| 莒南县| 邮箱| 凤山市| 海门市| 梧州市| 惠来县| 新津县| 辉县市| 远安县| 竹溪县| 阿鲁科尔沁旗| 米脂县| 安丘市| 襄汾县| 喜德县| 炉霍县| 沂源县| 原平市| 兰州市| 濮阳市| 景泰县| 阜康市| 淮北市| 开阳县| 阿瓦提县| 盘山县| 永川市| 红原县| 旬邑县| 轮台县| 乌兰察布市| 公安县| 新宁县|