日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

對于運維不得不得做的就是備份,增量備份與全量備份,通過rsync工具可以快速做到遠程備份。

rsync的應用: 1.備份文件 2.全量備份 3.增量備份。 通過rsync+inotify實時同步文件。

一、什么是rsync

rsync(Remote Sync,遠程同步)是一個開源的快速備份工具,可以在不同主機之間鏡像同步整個目錄樹,支持增量備份,保持鏈接和權限,且采用優化的同步算法,傳輸前執行壓縮,因此非常適用于異地備份、鏡像服務器等應用。

rsync是一款快速增量備份工具,支持:

(1)本地復制;
(2)與其他SSH同步;
(3)與rsync主機同步。

在遠程同步任務中,負責發起rsync同步操作的客戶機稱為發起端,而負責相應來自客戶機的rsync同步操作的服務器稱為同步源。在同步過程中,同步源負責提供文檔的原始位置,發起端應對該位置有讀取權限。

Linux中使用rsync數據備份工具和實例

 

rsync的優點

1.它有效地將文件復制和同步到遠程系統或從遠程系統同步文件到本地。

2.支持復制鏈接、設備、所有者、組和權限。

3.它比scp (Secure Copy)更快,因為rsync使用遠程更新協議,該協議只允許傳輸兩組文件之間的差異。第一次,它將一個文件或目錄的全部內容從源文件復制到目標文件,但從下一次開始,它只將更改的塊和字節復制到目標文件。

4.Rsync在兩端發送和接收數據時采用壓縮和解壓縮方式,因此占用的帶寬較少。

二、安裝rsync

查看版本或者查看本機是否安裝

rsync --version

在centos中使用下面命令安裝rsync:

 yum -y install rsync

在Ubuntu 或者Debian體系的linux系統上安裝rsync

sudo apt install rsync

三、使用rsync備份工具

配置好rsync同步源服務器之后,客戶端就可以使用rsync工具來執行遠程同步了。

基本語法

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
  • OPTION – rsync參數選項.
  • SRC – 源目錄.
  • DEST – 目標目錄.
  • USER – 遠程用戶名.
  • HOST – 遠程主機名或域名或IP地址.

rsync命令的選項

選項

說明

-a, ––archive

歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等價于 -rlptgoD (注意不包括 -H)

-r, ––recursive

對子目錄以遞歸模式處理

-l, ––links

保持符號鏈接文件

-H, ––hard-links

保持硬鏈接文件

-p, ––perms

保持文件權限

-t, ––times

保持文件時間信息

-g, ––group

保持文件屬組信息

-o, ––owner

保持文件屬主信息 (super-user only)

-D

保持設備文件和特殊文件 (super-user only)

-z, ––compress

在傳輸文件時進行壓縮處理

––exclude=PATTERN

指定排除一個不需要傳輸的文件匹配模式

––exclude-from=FILE

從 FILE 中讀取排除規則

––include=PATTERN

指定需要傳輸的文件匹配模式

––include-from=FILE

從 FILE 中讀取包含規則

––copy-unsafe-links

拷貝指向SRC路徑目錄樹以外的鏈接文件

––safe-links

忽略指向SRC路徑目錄樹以外的鏈接文件(默認)

––existing

僅僅更新那些已經存在于接收端的文件,而不備份那些新創建的文件

––ignore-existing

忽略那些已經存在于接收端的文件,僅備份那些新創建的文件

-b, ––backup

當有變化時,對目標目錄中的舊版文件進行備份

––backup-dir=DIR

與 -b 結合使用,將備份的文件存到 DIR 目錄中

––link-dest=DIR

當文件未改變時基于 DIR 創建硬鏈接文件

––delete

刪除那些接收端還有而發送端已經不存在的文件

––delete-before

接收者在傳輸之前進行刪除操作 (默認)

––delete-during

接收者在傳輸過程中進行刪除操作

––delete-after

接收者在傳輸之后進行刪除操作

––delete-excluded

在接收方同時刪除被排除的文件

-e, ––rsh=COMMAND

指定替代 rsh 的 shell 程序

––ignore-errors

即使出現 I/O 錯誤也進行刪除

––partial

保留那些因故沒有完全傳輸的文件,以是加快隨后地再次傳輸

––progress

在傳輸時顯示傳輸過程

-P

等價于 ––partial ––progress

––delay-updates

將正在更新的文件先保存到一個臨時目錄(默認為 “.~tmp~”),待傳輸完畢再更新目標文件

-v, ––verbose

詳細輸出模式

-q, ––quiet

精簡輸出模式

-h, ––human-readable

輸出文件大小使用易讀的單位(如,K,M等)

-n, ––dry-run

顯示哪些文件將被傳輸

––list-only

僅僅列出文件而不進行復制

––rsyncpath=PROGRAM

指定遠程服務器上的 rsync 命令所在路徑

––password-file=FILE

從 FILE 中讀取口令,以避免在終端上輸入口令,通常在 cron 中連接 rsync 服務器時使用

-4, ––ipv4

使用 IPv4

-6, ––ipv6

使用 IPv6

––version

打印版本信息

––help

顯示幫助信息

在指定復制源時,路徑是否有最后的 “/” 有不同的含義,例如:

/home : 表示將整個 /home 目錄復制到目標目錄
/home/ : 表示將 /home 目錄中的所有內容復制到目標目錄

四、rsync使用實例

本地復制

# rsync /etc/passwd 123.txt
//類似于cp命令

遠程同步

可以配合ssh免密碼登錄,則不需要輸入密碼。

或者使用 --password-file=/etc/pass.txt 指定接收端的密碼,明文可能不安全

# rsync -av root@192.168.1.2:/root/123.txt .
root@192.168.1.2's password:

rsync指定端口號( -e )

/usr/bin/rsync -e 'ssh -p 60920' -ahqzt  /root/master3.sql root@192.168.1.2:/root/ 

在傳輸過程中查看rsync進度(--progress)

使用--progress選項顯示rsync執行的詳細進度,如下所示:

# rsync -avz --progress /root/temp/ root@192.168.1.2:/root/temp

單向備份(--delete)

如果文件不在源中而是在目標中存在,則可能希望在rsync同步期間刪除目標上的文件。在這種情況下,請使用--delete選項:

rsync -avz --delete /root/temp root@192.168.1.2:/root/temp

文件傳輸過程中的include和exclude模式

rsync允許在進行同步時提供要包括和排除文件或目錄的模式。

[root@localhost ~]# rsync -avz --include 'P*' --exclude '*' root@192.168.1.2:/var/lib/rpm/ /root/temp/

排除的文件和目錄(--exclude-from)

使用--exclude-from參數,并指定要在文件中排除的文件和目錄。

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/

加入需要排除的文件,比如文件file1.c,目錄zcwyou:
cat /exclude-file.txt
file1.c
zcwyou

不傳輸大文件(--max-size)

可以使用rsync --max-size選項告訴rsync不要傳輸大于指定大小的文件。

# rsync -avz --max-size='1M' root@192.168.1.2:/var/lib/rpm/ /root/temp/
--max-size=1M使rsync僅傳輸小于或等于1M的文件。單位可以是K,M,G等。
還可以使用--min-size=參數,指定傳輸最小文件的大小。

傳輸成功后刪除源文件(--remove-source-files)

假設你有一個主web服務器和一個數據備份服務器,你創建了一個每日備份并與備份服務器同步,現在你不想在你的web服務器上保留備份的本地副本。

那么,您會等待傳輸完成,然后手動刪除本地備份文件嗎?這樣做肯定有點麻煩,這種自動刪除可以使用–remove-source-files選項來完成。

rsync --remove-source-files -zvh backup.tar.gz root@192.168.0.151:/home/backup/
檢查:
ls -l backup.tar.gz

限制Rsync傳輸時的帶寬(--bwlimit)

在將數據從一臺機器傳輸到另一臺機器時,可以使用–bwlimit選項設置帶寬限制。這個選項可以幫助我們限制Rsync占用的網絡帶寬。

rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  root@192.168.0.151:/root/tmprpm/

另外,默認情況下rsync只同步更改的塊和字節,如果你想完整同步整個文件或目錄,那么你可以使用-W選項。

定時任務

但是在現實工作環境中,備份工作通常是按計劃重復執行的,比如:

[root@localhost ~]# vim /root/123.pass
123456
//任意創建一個文件用于存放rsync授權用戶的密碼信息
[root@localhost ~]# chmod 600 /root/123.pass
//必須設定600權限,否則執行時將會報錯
[root@localhost ~]# crontab -e
//創建計劃任務
30 22 * * * /usr/bin/rsync -az --delete --password-file=/root/123.pass backuper@192.168.1.1::wwwroot /a
//每天晚上22:30執行腳本
[root@localhost ~]# systemctl restart crond
//重新啟動crond服務

同步目錄

這里是經常使用的腳本,做代碼、文件同步。

#!/bin/bash

SRC=/data/path1/ #192.168.1.3 發送端目錄
DST=/data/path1/ #192.168.1.2 接收端目錄
IP="192.168.1.2"
USER=www

#同步文件
/usr/bin/rsync -e 'ssh -p 22' -ahqzt 
--exclude ".git" 
--exclude "www/Conf/config.php" 
--exclude "www/Public/ueditor/*" 
--exclude "README.md" 
--delete $SRC $USER@$IP:$DST

-ahqzt
-a:歸檔模式
-h:輸出文件大小使用易讀的單位(如,K,M等)
-q:精簡輸出模式
-z: 在傳輸文件時進行壓縮
-t: 保留文件的時間標記
--exclude: 不需要同步的文件或目錄
--delete: 刪除那些接收端還有而發送端已經不存在的文件

在本教程中,您學習了如何使用Rsync在多臺Linux之間傳輸、復制或同步文件和目錄。在Rsync用戶手冊頁面上有更多關于Rsync的內容。下次再講如何通過rsync+inotify實時同步文件。

分享到:
標簽:rsync
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定