⑴ linux下rsync怎麼用
rsync的命令格式可以為:
1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
2. rsync [OPTION]... [USER@]HOST:SRC DEST
3. rsync [OPTION]... SRC [SRC]... DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync有六種不同的工作模式:
1. 拷貝本地文件;當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。
2.使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啟動該模式。
3.使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
4. 從遠程rsync伺服器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。
5. 從本地機器拷貝文件到遠程rsync伺服器中。當DST路徑信息包含"::"分隔符時啟動該模式。
6. 列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。
-a 以archive模式操作、復制目錄、符號連接 相當於-rlptgoD
rsync中的參數
-r 是遞歸
-l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有許可權;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;
-z 傳輸時壓縮;
-P 傳輸進度;
-v 傳輸時的進度等信息,和-P有點關系,自己試試。可以看文檔;
-e ssh的參數建立起加密的連接。
-u只進行更新,防止本地新文件被重寫,注意兩者機器的時鍾的同時
--progress是指顯示出詳細的進度情況
--delete是指如果伺服器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致
--password-file=/password/path/file來指定密碼文件,這樣就可以在腳本中使用而無需互動式地輸入驗證密碼了,這里需要注意的是這份密碼文件許可權屬性要設得只有屬主可讀。
B、一些實例
B1、列出rsync 伺服器上的所提供的同步內容;
首先:我們看看rsync伺服器上提供了哪些可用的數據源
# rsync --list-only [email protected]::
++++++++++++++++++++++++++++++++++++++++++++++
Welcome to use the mike.org.cn rsync services!
2002------2009
++++++++++++++++++++++++++++++++++++++++++++++
rhel4home This is RHEL 4 data
註:前面是rsync所提供的數據源,也就是我們在rsyncd.conf中所寫的[rhel4home]模塊。而「This is RHEL 4 data」是由[rhel4home]模塊中的 comment = This is RHEL 4 data 提供的;為什麼沒有把rhel4opt數據源列出來呢?因為我們在[rhel4opt]中已經把list=no了。
$ rsync --list-only [email protected]::::rhel4home
++++++++++++++++++++++++++++++++++++++++++++++
Welcome to use the mike.org.cn rsync services!
2002------2009
++++++++++++++++++++++++++++++++++++++++++++++
Password:
drwxr-xr-x 4096 2009/03/15 21:33:13 .
-rw-r--r-- 1018 2009/03/02 02:33:41 ks.cfg
-rwxr-xr-x 21288 2009/03/15 21:33:13 wgetpaste
drwxrwxr-x 4096 2008/10/28 21:04:05 cvsroot
drwx------ 4096 2008/11/30 16:30:58 easylife
drwsr-sr-x 4096 2008/09/20 22:18:05 giddir
drwx------ 4096 2008/09/29 14:18:46 quser1
drwx------ 4096 2008/09/27 14:38:12 quser2
drwx------ 4096 2008/11/14 06:10:19 test
drwx------ 4096 2008/09/22 16:50:37 vbird1
drwx------ 4096 2008/09/19 15:28:45 vbird2
後面的root@ip中,root是指定密碼文件中的用戶名,之後的::rhel4home這是rhel4home模塊名
B2、rsync客戶端同步數據;
#rsync -avzP [email protected]::rhel4home rhel4home
Password: 這里要輸入root的密碼,是伺服器端rsyncd.secrets提供的。在前面的例子中我們用的是mike,輸入的密碼並不回顯,輸好就回車。
註: 這個命令的意思就是說,用root用戶登錄到伺服器上,把rhel4home數據,同步到本地當前目錄rhel4home上。當然本地的目錄是可以你自己 定義的。如果當你在客戶端上當前操作的目錄下沒有rhel4home這個目錄時,系統會自動為你創建一個;當存在rhel4home這個目錄中,你要注意 它的寫許可權。
#rsync -avzP --delete [email protected]::rhel4home rhel4home
這回我們引入一個--delete 選項,表示客戶端上的數據要與伺服器端完全一致,如果 linuxsirhome目錄中有伺服器上不存在的文件,則刪除。最終目的是讓linuxsirhome目錄上的數據完全與伺服器上保持一致;用的時候要 小心點,最好不要把已經有重要數所據的目錄,當做本地更新目錄,否則會把你的數據全部刪除;
設定 rsync client
設定密碼文件
#rsync -avzP --delete --password-file=rsyncd.secrets [email protected]::rhel4home rhel4home
這次我們加了一個選項 --password-file=rsyncd.secrets,這是當我們以root用戶登錄rsync伺服器同步數據時,密碼將讀取rsyncd.secrets這個文件。這個文件內容只是root用戶的密碼。我們要如下做;
# touch rsyncd.secrets
# chmod 600 rsyncd.secrets
# echo "mike"> rsyncd.secrets
# rsync -avzP --delete --password-file=rsyncd.secrets [email protected]::rhel4home rhel4home
註:這里需要注意的是這份密碼文件許可權屬性要設得只有屬主可讀。
這樣就不需要密碼了;其實這是比較重要的,因為伺服器通過crond 計劃任務還是有必要的;
B3、讓rsync客戶端自動與伺服器同步數據
伺服器是重量級應用,所以數據的網路備份還是極為重要的。我們可以在生產型伺服器上配置好rsync 伺服器。我們可以把一台裝有rysnc機器當做是備份伺服器。讓這台備份伺服器,每天在早上4點開始同步伺服器上的數據;並且每個備份都是完整備份。有時 硬碟壞掉,或者伺服器數據被刪除,完整備份還是相當重要的。這種備份相當於每天為伺服器的數據做一個鏡像,當生產型伺服器發生事故時,我們可以輕松恢復數 據,能把數據損失降到最低;是不是這么回事??
step1:創建同步腳本和密碼文件
#mkdir /etc/cron.daily.rsync
#cd /etc/cron.daily.rsync
#touch rhel4home.sh rhel4opt.sh
#chmod 755 /etc/cron.daily.rsync/*.sh
#mkdir /etc/rsyncd/
#touch /etc/rsyncd/rsyncrhel4root.secrets
#touch /etc/rsyncd/rsyncrhel4easylife.secrets
#chmod 600 /etc/rsyncd/rsync.*
註: 我們在 /etc/cron.daily/中創建了兩個文件rhel4home.sh和rhel4opt.sh ,並且是許可權是755的。創建了兩個密碼文件root用戶用的是rsyncrhel4root.secrets ,easylife用戶用的是 rsyncrhel4easylife.secrets,許可權是600;
我們編輯rhel4home.sh,內容是如下的:
#!/bin/sh
#backup 192.168.145.5:/home
/usr/bin/rsync -avzP --password-file=/etc/rsyncd/rsyncrhel4root.password [email protected]::rhel4home /home/rhel4homebak/$(date +'%m-%d-%y')
我們編輯 rhel4opt.sh ,內容是:
#!/bin/sh
#backup 192.168.145.5:/opt
/usr/bin/rsync -avzP --password-file=/etc/rsyncd/rsyncrhel4easylife.secrets [email protected]::rhel4opt /home/rhel4hoptbak/$(date +'%m-%d-%y')
註:你可以把rhel4home.sh和rhel4opt.sh的內容合並到一個文件中,比如都寫到rhel4bak.sh中;
接著我們修改 /etc/rsyncd/rsyncrhel4root.secrets和rsyncrhel4easylife.secrets的內容;
# echo "mike" > /etc/rsyncd/rsyncrhel4root.secrets
# echo "keer"> /etc/rsyncd/rsyncrhel4easylife.secrets
然後我們再/home目錄下創建rhel4homebak 和rhel4optbak兩個目錄,意思是伺服器端的rhel4home數據同步到備份伺服器上的/home/rhel4homebak 下,rhel4opt數據同步到 /home/rhel4optbak/目錄下。並按年月日歸檔創建目錄;每天備份都存檔;
#mkdir /home/rhel4homebak
#mkdir /home/rhel4optbak
step2:修改crond伺服器的配置文件 加入到計劃任務
#crontab -e
加入下面的內容:
# Run daily cron jobs at 4:10 every day backup rhel4 data:
10 4 * * * /usr/bin/run-parts /etc/cron.daily.rsync 1> /dev/null
註:第一行是注釋,是說明內容,這樣能自己記住。
第二行表示在每天早上4點10分的時候,運行 /etc/cron.daily.rsync 下的可執行腳本任務;
配置好後,要重啟crond 伺服器;
# killall crond 註:殺死crond 伺服器的進程;
# ps aux |grep crond 註:查看一下是否被殺死;
# /usr/sbin/crond 註:啟動 crond 伺服器;
# ps aux |grep crond 註:查看一下是否啟動了?
root 3815 0.0 0.0 1860 664 ? S 14:44 0:00 /usr/sbin/crond
root 3819 0.0 0.0 2188 808 pts/1 S+ 14:45 0:00 grep crond
⑵ 如何在Linux伺服器中實現數據實時同步及備份
科技時代,任何行業都離不開數據的分析以及統籌,如果掌握了最關鍵的數據及技術,那成功就指日可待,所以數據對於一個企業來說,就是最無形的財富,而一個企業的數據基本都有伺服器保存及管理著,如何保證數據安全,實現數據同步及備份?誠愷科技小編就同大家一起來看看在Linux伺服器中利用rsync配合inotify實現數據實時同步及備份的方法。
rsync:可以鏡像保存整個目錄樹和文件系統。可以很容易做到保持原來文件的許可權、時間、軟硬鏈接等等。第一次同步時 rsync 會復制全部內容,但在下一次只傳輸修改過的文件。
方案:起初用rsync進行數據備份是利用計劃任務,定時執行一下命令實現rsync的同步,但最近開發這邊修改比較頻繁,看來需要實時同步備份來完善備份機制!所以需要利用inotify觸發器來改善!達到一旦指定的位置有了新的變動就將其同步!
環境:
CentOS 6.4 64位
rsync-3.0.9
inotify-tools-3.14
說明:
10.10.1.6 (rsync+inotify)----------網站程序(/data0/htdocs/)
10.10.1.9 (rsync)------------------網站程序備份(/data0/htdocs/)
目的:
實現10.10.1.6的/data0/htdocs/目錄下發生任何變動都將實時同步到10.10.1.9的/data0/htdocs/上(另,這兩台都跑有keepalived+nginx,來實現出現故障自動切換的容災,詳細配置會在後面補上)
一、web伺服器10.10.1.6 (rsync+inotify)
1、准備軟體包
2、安裝Rsync
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密碼認證文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncd.secrets建立密碼認證文件
*其中111111可以自己設置密碼,rsyncd.secrets名字也可以自己設置;
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
# chmod 600 /etc/rsyncd/rsyncd.secrets
3、安裝inotify
1)、1234 tar-zxvf inotify-tools-3.14.tar.gz
2)、cdinotify-tools-3.14
3)、./configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、創建rsync復制腳本
此項功能主要是將ftp端的目錄/data0/htdocs/里的內容,如果修改了(無論是添加、修改、刪除文件)能夠通過inotify監控到,並通過rsync實時的同步給10.10.1.9的/data0/htdocs里,下面是通過shell腳本實現的。
[root@web ~]# vim /root/shell/rsync.sh
[root@web ~]# chmod u+x /root/shell/rsync.sh
[root@web ~]# setsid /root/shell/rsync.sh &
#後台運行腳本,關閉shell終端繼續後台運行
rsync.sh腳本加入開機啟動項
# echo "/root/shell/rsync.sh" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
二、備份伺服器10.10.1.9(rsync)
1、准備工作
創建備份目錄:
# mkdir /data0/htdocs
2、安裝rsync(備份主機只安裝rsync)
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用戶與密碼認證文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncd.secrets
[root@backup ~]# less /etc/rsyncd/rsyncd.secrets
root:111111
注意:
請記住,在10.10.1.6端建立的密碼文件,只有密碼,沒有用戶名;而在10.10.1.9里建立的密碼文件,用戶名與密碼都有。
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
#chmod 600 /etc/rsyncd/rsyncd.secrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncd.conf
啟動rsync服務
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
# ps -ef |grep rsync
Rsync服務加入開機啟動項
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
完成,其實這個時候數據已經同步了!
測試一下:
由於/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/為例
主機名可以區別是兩台機器,裡面的內容完全一直,連文件的屬性都一樣
再對裡面修改一下試試,創建一個文件,然後刪除user目錄試試
⑶ linux之間傳文件用什麼工具好呢
1. 前言
linux之間傳文件命令用什麼命令?本文介紹一種最常用,也是功能強大的文件同步和傳輸工具Rsync,本文提供詳細傻瓜式教程。
在本教程中,我們將通過實際使用案例和最常見的rsync選項的詳細說明向您展示如何使用rsync。
本教程適用於Ubuntu系統、Linux Mint系統、Deepin深度Linux系統、Fedora系統、Debian系統、Elementary OS系統、OpenSUSE系統、CentOS系統、RHEL系統,Arch Linux等等GNU Linux發行版。
2. `rsync`介紹
Rsync是一個快速且通用的命令行實用程序,它可以使Windows與Linux之間,Linux與Linux之間傳文件或者Linux與MAC OS之間傳文件。或從Linux本地文件系統到遠程Rsync守護進程之間同步文件和文件夾。它只傳輸源和目標之間的差異,從而提供快速增量文件傳輸。
Rsync可以用於鏡像數據、增量備份、在Linux系統之間傳文件,也可以用於Linux與Windows之間傳輸文件,還可以替代日常使用的scp、sftp和cp命令,他們一般也用於Linux之間傳文件或者Linux與MAC OS之間傳文件。
3. 如何安裝`Rsync`
rsync實用程序預裝在大多數Linux發行版和macOS上。你可以輸入以下命令,檢查你的系統是否已安裝:
查看Rsync版本的輸出結果:
如果您的系統上沒有安裝rsync,您可以使用發行版的包管理器輕松地安裝它。
在Ubuntu 或者Debian體系的Linux系統上安裝rsync
在CentOS 或者Fedora系統上安裝rsync
4. Rsync命令使用語法
在討論如何使用rsync命令之前,讓我們先回顧一下基本語法。
rsync實用程序表達式採用以下形式:
rsync提供了許多選項來控制其行為和功能。最廣泛使用的選項是:
-a, --archive, 歸檔模式, 相當於 -rlptgoD。這個選項告訴rsync遞歸地同步目錄、傳輸特殊設備和塊設備、保存符號鏈接、修改時間、組、所有權和許可權。
-z, --compress. 這個選項將強制rsync在傳送文件到目標計算機時壓縮數據。僅當到遠程計算機的連接很慢時才使用此選項。
-P, 相當於--partial --progress。使用此選項時,rsync將在傳輸期間顯示一個進度條,並保留部分傳輸的文件。當通過緩慢或不穩定的網路連接傳輸大文件時,它非常有用。
--delete. 使用此選項時,rsync將從目標位置刪除無關文件。它對鏡像很有用。
-q, --quiet。如果希望禁用非錯誤消息,請使用此選項。
-e. 此選項允許您選擇不同的遠程shell。默認情況下,rsync被配置為使用ssh。
5. 使用Rsync最基本的功能使Linux之間傳輸文件
要將一個文件從一個本地位置復制到另一個本地位置,可以運行以下命令:
運行該命令的用戶必須具有目標位置上的讀許可權和目標上的寫許可權。
從目標位置省略文件名將復制具有當前名稱的文件。如果您想將文件保存在另一個名稱下,請在目標部件上指定新名稱:
比如復制filename.zip到目標目錄並重新把文件名修改為newfilename.zip
在下面的例子中,我們正在創建一個本地備份我們的網站文件:
如果目標目錄不存在,rsync將創建它。
值得一提的是,rsync對後面帶有斜杠/的源目錄提供了不同的處理。如果在源目錄上添加一個尾隨斜杠,它將只將目錄的內容復制到目標目錄。當後面的斜杠被省略時,rsync將把源目錄復制到目標目錄中。
6. 如何使用Rsync與遠程伺服器同步文件(包括上傳下載)
當使用rsync進行遠程傳輸時,必須同時安裝在源機器和目標機器上。rsync的新版本被配置為使用SSH作為默認遠程shell。
在下面的例子中,我們將一個目錄從本地轉移到遠程機器:
如果你需要配置2台Linux之間免密碼登錄,請查看以下教程:
如果你想把數據從遠程傳輸到本地機器,你需要使用遠程位置作為一個源:
如果遠程主機上的SSH監聽的埠不是默認的22埠,那麼可以使用-e選項指定埠:
比如遠程伺服器的SSH埠被修改為1234
當傳輸大量數據時,建議在屏幕會話中運行rsync命令或使用-P選項:
7. 使用Rsync傳送或同步文件時,排除某些文件或者目錄
當使用Rsync排除文件或目錄時,需要使用它們到源位置的相對路徑。
有兩個選項可以排除文件和目錄。第一個選項是使用--exclude參數,並在命令行中指定要排除的文件和目錄。
在下面的例子中,我們排除了位於src_directory中的123和abc目錄:
第二個選項是使用--exclude-from參數,並指定要在文件中排除的文件和目錄。
vi exclude-file.txt
加入需要排除的文件,比如文件file1.c,目錄zcwyou:
8. 總結
在本教程中,您學習了如何使用Rsync在多台Linux之間傳輸、復制或同步文件和目錄。在Rsync用戶手冊頁面上有更多關於Rsync的內容。
如果你有任何問題,請留下你的意見。
⑷ linux 自帶的rsync 怎麼同步文件到windows
(1)先使用telnet命令嗅探一下網路鏈路有沒有問題,telnet使用方法如下:
telnet ip 873
如果嗅探網路不通,那就檢查一下網路配置,是否請求windows防火牆阻止等。
(2)若果嗅探網路是通的,那就檢查一下rsync的配置:
hosts allow = IP 是不是限制了linuxA機器的訪問。
path = PATH 注意:這個路徑不支持中文的,你的路徑是否是中文。
auth users = USER 注意:用戶是否有許可權訪問共享文件目錄。
secrets file = /PAS/rsync_db.ps 指定的密碼是否與LinuxA配置的一致。
我能想到的就這么多,希望對你有所幫助。
⑸ linux下如何實現增量備份
伺服器需求:
需要備份文件的伺服器(伺服器端):192.168.10.2 (RHEL 5)
接收備份文件的伺服器(客戶端):192.168.10.3 (RHEL 5)
實現功能:
通過rsync工具對turbomail郵件伺服器的accounts目錄和conf目錄進行增量備份。
accounts目錄:用於存儲用戶相關信息的目錄
conf目錄:用戶配置文件存放目錄
前提條件:
先將turbomail郵件系統安裝好(伺服器端與客戶端操作一樣)
安裝過程如下:
1、掛載光碟機:mount /dev/cdrom
2、將turbomail的安裝包拷貝到跟目錄下/
#cd /dev/cdrom
#cp turbomail_linux_x86_xxx.tgz
3、解壓turbomail安裝包
tar –zxvf turbomail_linux_x86_xxx.tgz
4、啟動turbomail
#cd /turbomail
#./starttm.sh
#cd /turbomail/web/bin/
#./startup.sh 5、修改啟動腳本/etc/rc.d/rc.local
使郵件伺服器開機自動啟動加入以下幾行:#/turbomail/starttm.sh &
#/turbomail/web/bin/startup.sh & #/turbomail/safestart.sh &
rsync的配置如下:
1.伺服器端rsync的配置:使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
若採用採用源碼包安裝,上傳安裝包到伺服器1)tar –zxvf rsyncrsync-2.6.9.tar.gz #解壓2)cd rsyncrsync-2.6.9 3)./configure #默認配置,生成編譯環境
4)make #編譯
5)make install #安裝完成,任何步驟有疑問輸入echo $?查返回值,0表示成功,其他都為失敗rsync 版本
2.4.6(可以從http://rsync.samba.org/rsync/獲得最新版本)
1)編輯/etc/rsyncd.conf文件,rsync的主要配置文件:
#[globale]
strict modes= yes
#check passwd file
port= 873 #rsync工具默認使用的埠
#default port
logfile= /var/log/rsyncd.log #日誌文件存放路徑pidfile= /var/run/rsyncd.pid #記錄rsync運行時的進程ID
max connections= 4 #同上最大的鏈接數
#[moles] #同步模塊的配置
[rsync]
uid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的uid
gid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的gid
ignore errors #忽略一些無關的錯誤信息
#要備份的目錄
path= /turbomail/accounts #需要同步的目錄
read only= no #是否設置以只讀的方式運行
host allow= 192.168.10.3 #同步數據的客戶端ip如有多個客戶端,以「,」隔開即可
auth users= zhouhw #同步用的用戶名
secrets file= /etc/rsyncd.scrt #同步的密碼認證文件
[test]
uid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的uid
gid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的gid
ignore errors #忽略一些無關的錯誤信息
#要備份的目錄
path= /turbomail/conf #需要同步的目錄
read only= no #是否設置以只讀的方式運行
host allow= 192.168.10.3 #同步數據的客戶端ip如有多個客戶端,以「,」隔開即可
auth users= zhouhw #同步用的用戶名
secrets file= /etc/rsyncd.scrt #同步的密碼認證文件2)編輯/etc/rsyncd.scrt文件,密碼認證文件
zhouhw:123456
該更許可權為600:chmod 600 /etc/rsyncd.scrt 3) 運行rsync --daemon,並在/etc/rc.d/rc.local加入此語句,開機自動啟動。
備註:rsync默認埠873,若安裝了iptables,如需改動啟動時啟動rsync –port 873,請在iptables 中開放該埠,語句如下:
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
4)編輯/etc/xinetd.d/rsync
rsync服務的監聽由xinet來統一分配:
service rsync
{
disable = no #將此項改為no
socket_typ
e = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
重啟xinetd以啟動rsync服務
service xinetd restart
5)查看rsync事故正常運行
輸入命令:netstat -ant|grep :873若有顯示以下一條語句,則說明rsync服務已經正常啟動了。
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2.客戶端的配置:使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
1)編輯/etc/rsyncd.scrt文件,密碼認證文件
zhouhw:123456
該更許可權為600:chmod 600 /etc/rsyncd.scrt 2)編輯腳本vi /root/scrpit/rsync.sh並加入開機自動啟動。
#!/bin/sh /usr/bin/rsync -vazu --progress --delete
[email protected]::rsync /turbomail --password-file=/etc/rsyncd.scrt
[email protected]::test /turbomail
--password-file=/etc/rsyncd.scrt修改許可權:chmod u+x
/root/scrpit/rsync.sh執行./rsync.sh 同步數據。
3)編輯/etc/crontab文件,定義為每小時30分鍾執行一次數據同步。
vi /etc/crontab
# run-parts
01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root
run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4
1 * * root run-parts /etc/cron.monthly 30 * * * * root
/root/scrpit/rsync.sh客戶端的配置到此就可以了,伺服器與客戶端的數據也會在每小時的第30分鍾執行一次。
客戶端同步命令詳解:
v, --verbose 詳細模式輸出-q, --quiet 精簡輸出模式-c, --checksum
打開校驗開關,強制對文件傳輸進行校驗-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD
-r, --recursive 對子目錄以遞歸模式處理-R, --relative 使用相對路徑信息-b, --backup
創建備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不同的備份文件前綴。
--backup-dir 將備份文件(如~filename)存放在在目錄下。
-suffix=SUFFIX定義備份文件前綴
-u, --update 僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件。(不覆蓋更新的文件) -l, --links 保留軟鏈結-L, ---links 想對待常規文件一樣處理軟鏈結
---unsafe-links僅僅拷貝指向SRC路徑目錄樹以外的鏈結
--safe-links忽略指向SRC路徑目錄樹以外的鏈結
-H, --hard-links 保留硬鏈結-p, --perms 保持文件許可權-o, --owner 保持文件屬主信息-g,
--group 保持文件屬組信息-D, --devices 保持設備文件信息-t, --times 保持文件時間信息-S, --sparse
對稀疏文件進行特殊處理以節省DST的空間-n, --dry-run現實哪些文件將被傳輸-W, --whole-file
拷貝文件,不進行增量檢測-x, --one-file-system 不要跨越文件系統邊界-B, --block-size=SIZE
檢驗演算法使用的塊尺寸,默認是700位元組-e, --rsh=COMMAND 指定替代rsh的shell程序
--rsync-path=PATH指定遠程伺服器上的rsync命令所在路徑信息
-C, --cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸的文件--existing 僅僅更新那些已經存在於DST的文件,而不備份那些新創建的文件
--delete刪除那些DST中SRC沒有的文件
--delete-excluded同樣刪除接收端那些被該選項指定排除的文件
--delete-after傳輸結束以後再刪除
--ignore-errors及時出現IO錯誤也進行刪除
--max-delete=NUM最多刪除NUM個文件
--partial 保留那些因故沒有完全傳輸的文件,以是加快隨後的再次傳輸--force 強制刪除目錄,即使不為空
--numeric-ids不將數字的用戶和組ID匹配為用戶名和組名
--timeout=TIME IP超時時間,單位為秒-I, --ignore-times
不跳過那些有同樣的時間和長度的文件--size-only
當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間--modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認為0
-T --temp-dir=DIR在DIR中創建臨時文件
--compare-dest=DIR同樣比較DIR中的文件來決定是否需要備份
-P等同於--partial
--progress顯示備份過程
-z, --compress 對備份的文件在傳輸時進行壓縮處理
--exclude=PATTERN指定排除不需要傳輸的文件模式
--include=PATTERN指定不排除而需要傳輸的文件模式
--exclude-from=FILE排除F
ILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version列印版本信息
--address綁定到特定的地址
--config=FILE 指定其他的配置文件,不使用默認的rsyncd.conf文件
--port=PORT指定其他的rsync服務埠
--blocking-io對遠程shell使用阻塞IO
-stats給出某些文件的傳輸狀態
--progress在傳輸時現實傳輸過程
--log-format=formAT指定日誌文件格式
--password-file=FILE從FILE中得到密碼
--bwlimit=KBPS 限制I/O帶寬,KBytes per second -h, --help 顯示幫助信息
⑹ CentOS7 使用rsync遠程同步指定文件夾,請問用什麼命令
remote synchronize:一款實現遠程同步功能的軟體,它在同步文件的同時,可以保持原來文件的許可權、時間、軟硬鏈接等附加信息, rsync是用 「rsync 演算法」提供了一個客戶機 和遠程文件伺服器的文件同步的快速方法,而且可以通過ssh方式來傳輸文件,這樣其保密性也非常好,另外它還是免費的軟體。因為rsync是一款如此有用 的軟體,所以很多Linux的發行版本都將它收錄在內了
特性:
能更新整個目錄
有選擇性的保持符號鏈鏈、硬鏈接、文件屬於、許可權、設備以及時間等;
對於安裝來說,無任何特殊許可權要求;
對於多個文件來說,內部流水線減少文件等待的延時;
能用rsh、ssh 或直接埠做為傳輸入埠;
支持匿名rsync 同步文件,是理想的鏡像工具;
架設rsync伺服器:
1.安裝:
#yum方式安裝
#源碼方式,注意安裝gcc
tar xvf rsync-xxx.tar.gz
cd rsync-xxx
./configure --prefix=/usr/local
make ;make install
rsync的主要有以下三個配置文件(需要手工創建):
/etc/rsyncd.conf(主配置文件)
/etc/rsyncd.secrets(密碼文件)
格式:user1:passwd1
出於安全目的,文件的屬性必需是只有屬主可讀。
chown root.root rsyncd.secrets #修改屬主
chmod 600 rsyncd.secrets
/etc/rsyncd.motd
定義rysnc伺服器信息的,也就是用戶登錄信息,可以為空
類似ftp的歡迎頁面
示例:Welcome to use the mike.org.cn rsync services!
rsyncd.conf配置文件示例:
#Distributed under the terms of the GNU General Public License v2
#Minimal configuration file for rsync daemon
#See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
#告訴進程寫到 /var/run/rsyncd.pid 文件中
pid file = /var/run/rsyncd.pid
#指定運行埠,默認是873
port = 873
#指定伺服器IP地址
address = 192.168.1.171
#伺服器端傳輸文件時,要發哪個用戶和用戶組來執行,默認是nobody。 如果用nobody 用戶和用戶組,可能遇到許可權問題
#uid = nobody
#gid = nobody
uid = root
gid = root
#一個安全選項 詳情自己去查查
use chroot = yes
#read only 是只讀選擇,也就是說,不讓客戶端上傳文件到伺服器上。還有一個 write only選項
read only = yes
#在您可以指定單個IP,也可以指定整個網段,能提高安全性。格式是ip 與ip 之間、ip和網段之間、網段和網段之間要用空格隔開
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
#This will give you a separate log file
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
#指定文件目錄所在位置
[home]
path = /home
list=yes #是否可以列出目錄
ignore errors # #忽略IO錯誤
#auth users必須是在伺服器上存在的真實的系統用戶,如果你想用多個用戶以,號隔開,比如auth users = easylife,root
auth users = root
secrets file = /etc/rsyncd.secrets
comment = This is RHEL 4 data
#exclude是排除的意思,也就是說,要把/home目錄下的easylife和samba排除在外; easylife/和samba/目錄之間有空格分開
exclude = easylife/ samba/
模塊定義什麼呢?
主要是定義伺服器哪個目錄要被同步。每個模塊都要以[name]形式。這個名字就是在rsync 客戶端看到的名字,其實有點象Samba伺服器提供的共享名。而伺服器真正同步的 數據是通過path 指定的。我們可以根據自己的需要,來指定多個模塊。每個模塊要指定認證用戶,密碼文件、但排除並不是必須的
啟動rsync伺服器:
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
--config用於指定rsyncd.conf的位置,如果在/etc下可以不寫/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
rsync有六種不同的工作模式:
1. 拷貝本地文件;當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。
2.使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啟動該模式。
3.使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
4. 從遠程rsync伺服器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。
5. 從本地機器拷貝文件到遠程rsync伺服器中。當DST路徑信息包含"::"分隔符時啟動該模式。
6. 列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。
-a 以archive模式操作、復制目錄、符號連接 相當於-rlptgoD
rsync中的參數
-r 是遞歸
-l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有許可權;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;
-z 傳輸時壓縮;
-P 傳輸進度;
-v 傳輸時的進度等信息,和-P有點關系,自己試試。可以看文檔;
-e ssh的參數建立起加密的連接。
-u只進行更新,防止本地新文件被重寫,注意兩者機器的時鍾的同時
--progress是指顯示出詳細的進度情況
--delete是指如果伺服器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致
--password-file=/password/path/file來指定密碼文件,這樣就可以在腳本中使用而無需互動式地輸入驗證密碼了,這里需要注意的是這份密碼文件許可權屬性要設得只有屬主可讀。