linux備份


備份的概念

  備份就是把重要的數據或者文件復制一份保存到另一個地方,實現不同主機之間的數據同步1

備份方式

  1.cp

    cp就是linux的復制命令,可用於本機內的備份

  2.scp

    Linux scp 命令用於 Linux 之間復制文件和目錄。
    scp 是 secure copy 的縮寫, scp 是 linux 系統下基於 ssh 登陸進行安全的遠程文件拷貝命令。
    scp 是加密的,rcp 是不加密的,scp 是 rcp 的加強版。

  3.rsync

    rsync英文稱為remote synchronizetion,從軟件的名稱就可以看出來,rsync具有可使本地和遠程兩台主機之間的數據快速復制同步鏡像、遠程備份的功能,這個功能類似於ssh帶的scp命令,但是又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。

 

scp傳輸方式

  scp分為推和拉兩種方式

  推:指從本地上傳到遠程服務器

    格式:

      scp [文件路徑] root@[ip] : [路徑]

 

 

 

   拉:指從遠程服務器下載到本地

    格式:

      scp root@[ip] : [文件路徑] [本地路徑]

 

 

 

rsync服務

  rsync的特性

    支持拷貝特殊文件,如連接文件、設備等。
    可以有排除指定文件或目錄同步的功能,相當於打包命令tar的排除功能。
    可以做到保持原文件或目錄的權限、時間、軟硬鏈接、屬主、組等所有屬性均不改變 –p。
    可以實現增量同步,既只同步發生變化的數據,因此數據傳輸效率很高(tar-N)。
    可以使用rcp、rsh、ssh等方式來配合傳輸文件(rsync本身不對數據加密)。
    可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)*****。
    支持匿名的活認證(無需系統用戶)的進程模式傳輸,可以實現方便安全的進行數據備份和鏡像。

  rsync傳輸模式

    1.本地方式(類似於cp,不支持推送和拉取,只是單純的復制)
    2.遠程方式(類似於scp,又不同於scp),scp只支持全量備份,rsync支持增量備份和差異備份
    3.守護進程方式(客戶端和服務端)

  rsync使用

    命令格式:

      rsync [參數] [文件路徑] root@[ip] : [目標路徑]

    參數:

       -t:保持文件時間信息

      -o:保持文件屬組信息

      -g:保持文件屬組信息

      -p:保持文件權限

       -l:保留軟鏈接

      -D:保持設備文件信息

      -r:遞歸傳輸目錄及子目錄

      -a:歸檔模式傳輸,等於-tropgDl

      -v:詳細模式輸出,打印速率,文件數量等

      -z:傳輸時進行壓縮以提高效率

      -P:保持文件的權限

      --append:指定文件斷點續傳

      --append-verify:斷點續傳后對文件進行驗證,如果文件有不同則修復

      --exclude=[文件名]:指定文件名排除不需要傳輸的文件

      --exclude-from=[文件名]:根據文件的內容排除不需要傳輸的文件

      --bwlimit=n:限制傳輸速率,單位MB/s

      --delete:讓目標目錄和源目錄數據保持一致

      --password-file=[文件名]:使用密碼文件

      --port:指定端口傳輸

    案例:

      案例1:將a目錄下的文件全部備份。

      案例2:將a目錄下的文件備份並顯示備份時的信息。

 

 

       通過此案例可知在備份文件時常用的參數是azvP(當不需要輸出時只用az)。

      案例3:當a目錄備份中斷后斷點續傳。

 

 

       斷點續傳時傳輸文件的百分比不太准確是正常的。

      案例4:備份a目錄除了2.txt,並且將速率限制在10MB/s

 

 

       限制網速的不能完全限制,只能限制一個近似的值

  rsync守護進程模式

    守護進程模式的主要目的是為了能實現自動備份。

    需要在服務端配置文件方便客戶端的備份。

    服務端

      1.安裝rsync

 

 

       2.修改配置文件

      安裝完成后需要修改rsync的配置文件/etc/rsyncd.conf 

uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to backup!
path = /backup
[linux]
comment = welcome to linux!
path=/tmp/linux
配置文件內容

      3.創建系統用戶

        按照配置文件中設定的用戶名和組名創建系統用戶

 

 

 

 

      4.創建密碼文件

        按照配置文件中的密碼文件目錄創建密碼文件。

 

 

 

      5.為密碼文件授權

        密碼文件的權限必須為600

 

 

 

      6.創建備份目錄

        按照配置文件中的模塊創建備份目錄(一個模塊就是一個目錄)

 

 

 

      7.目錄授權

        創建后的目錄用戶和屬組都是root,需要將其改為rsync

 

 

 

      8.關閉防火牆和seLinux

 

 

 

      9.啟動rsyncd服務

 

 

 

    客戶端

      配置完服務端之后就可以在客戶端嘗試使用。

      可以用三種方式來使用

      方式一:直接輸入密碼

 

 

 

      方式二:設置密碼文件在運行時讀取

        先創建密碼文件,並授權

 

 

 

        使用密碼文件備份時無需輸入密碼

 

 

 

      方式三:添加環境變量

        將密碼添加到環境變量也可以無需輸入密碼進行備份,但是每次重啟后需要重新添加。

 

 

 

  rsync實時同步

    rsync本身並不支持實時同步功能,為了實現這一功能需要其他軟件的配合。通常我們使用inotify這個軟件來實時的監控軟件的變化,當發現軟件變化后就使用rsync來將文件進行備份。

    intify參數介紹:

      -m:持續監控

      -r:遞歸

      -q:靜默,僅打印時間信息

      --timefmt:指定輸入時間格式

      --format:指定事件輸出格式

        %Xe:事件

        %W:目錄

        %f:文件

      -e:指定監控的事件

        access:訪問

        modify:內容修改

        attrib:屬性修改

        close_write 修改真實文件內容

        open:打開

        create:創建

        delete:刪除

        umount:卸載

    inotify使用方式:

      1.安裝inotify

 

       2.使用inotify來監控文件變化

        命令格式:

          inotifywait [參數] 文件目錄

 

 

      3.實時監控並同步

 

 

inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /root/a | while read line;do     
 cd /root/a
 rsync -azvP --delete --password-file=/etc/rsync.passwd ./* rsync_backup@172.16.1.41::backup
 done

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM