當前位置:首頁 » 操作系統 » linuxrsync同步

linuxrsync同步

發布時間: 2023-05-16 12:03:49

『壹』 4-10.10 linux 中的文件同步傳輸 --- rsync --include 傳輸指定的數據

2、--include 一般結合 --exclude 一起用。--include 的作用是指定需要傳輸的內容。但是單純的用 --include 並不能如我所願的結果。因為單純的 --include 沒有起到只傳輸我想要的文件,而是把源目錄的所有數據傳輸到目標目錄。
--include 和 --exclude 搭檔,--exclude 是起到排除的功能, 也就是當 --include 指定了我們所需要傳輸的數據時,通過 --exclude 排除其他內容的傳輸。這樣就可以完成指定什麼數據需要傳輸,其他不在范圍內的數據都不傳輸。

下面是單純的用 --include 指定傳輸 SRC 目錄下所有結尾為 .txt 的文件效果。 單純的用 --include 沒有起到只傳輸我想要的文件,而是把源目錄的所有數據傳輸到目標目錄。

3、傳輸 office_directory 目錄及文件。

4、傳輸 SRC 目錄下的所有 txt 到 backups_include 目錄(含子目錄及內容)。
分析思路:

5、如果只想傳輸 .txt 結尾的文件到 backups_include 目錄,不想傳輸子目錄文件夾。可用發送方,也就是源目錄的路徑進行控制。
分析思路:

6、傳輸多個二級目錄及文件。

7、傳輸三級目錄及文件原理也是一樣。通過 --include 把目錄和目錄下 *.txt 文件類型標識清楚。以傳輸 SRC 目錄下的三級目錄及所有 .txt 文件為例:

8、傳輸 SRC 目錄下的所有 .txt 文件(不含目錄)到 backups_include 目錄。

9、優化 例 8 語句

10、指定傳輸某些文件。

11、指定傳輸某字母或單詞開頭的目錄或文件。

12、指定傳輸含有某字母或單詞的文件。

13、指定傳輸某字母或單詞結尾的文件。

14、指定多個傳輸條件可以用 { } 大擴號把條件括起來,條件與條件之間用 ,逗號分隔開。只用一個 --include參數。可進步一步優化語句,避免臃腫。

『貳』 linux rsync怎麼同步文件

一、rsync簡介
用於替代rcp的一個工具,rsync可以通過rsh或ssh使用,也能以daemon模式去運行,在以daemon方式運行時rsync
server會開一個873埠,等待客戶端去連接,連接時,rsync
server會檢查口令是否相符,若通過口令查核,則可以通過進行文件傳輸,第一次連通完成時,會把整份文件傳輸一次,以後則就只需進行增量備份;

二、rsync常用參數
-v,--verbose 詳細模式輸出;
-a,--archive 歸檔模式,表示以遞歸的方式傳輸文件,並保持所有文件屬性不變,相當於使用了組合參數-rlptgoD;
-r, --recursive 對子目錄以遞歸模式處理;
-l, --links 保留軟鏈結;
-p, --perms 保持文件許可權;
-t, --times 保持文件時間信息;
-g, --group 保持文件屬組信息;
-o, --owner 保持文件屬主信息;
-D, --devices 保持設備文件信息;
-H, --hard-links 保留硬鏈結;
-S, --sparse 對稀疏文件進行特殊處理以節省DST的 空間;
--delete 刪除那些DST中SRC沒有的文件;
-z, --compress 對備份的文件在傳輸時進行壓縮處理;

三、rsync的六種不同的工作模式;
1)拷貝本地文件;
當SRC和DES路徑信息中不包含冒號":"分隔符時,就啟用這種工作模式:
[root@cmmailapp1 /]# rsync -avSH /home/coremail/ /cmbak/

2)使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容叢橋拷貝到遠程機器,當DST路徑地址包括冒號":"分隔符時啟動該模式;
[root@cmmailapp1 /]# rsync -avSH /home/coremail/ 192.168.11.12:/home/coremail/

3)使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器,當SRC地址路徑包括冒號":"分隔符時啟動該模式;
[root@cmmailapp2 /]# rsync -avSH 192.168.11.11:/home/coremail/ /home/coremail/

4)從遠程rsync伺服器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。
如:rsync -av [email protected]::www /困備databack

5)從本地機器拷貝文件到遠程rsync伺服器中。當DST路徑信息包含"::"分隔符時啟動該模式。
如:rsync -av /databack [email protected]::www

6)列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。
如:滲尺猛rsync -v rsync://192.168.11.11/data

四、rsync服務端的配置;
環境:192.168.11.11為生產機;192.168.11.12為備份機;
那麼需要192.168.11.11需要作為rsync的client;
192.168.11.12作為rsync的service端;

1、192.168.11.12_service端的配置;
1)[root@cmmailapp2 data]# touch /etc/rsyncd.conf //此文件為rsync的主配置問題,默認不存在需要手動創建;
2)定義同步的配置;
[root@cmmailapp2 data]# cat /etc/rsyncd.conf
[data]
path = /data/
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[mysql]
Path = /home/coremail/var/mysql
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[cmxt]
Path = /home/coremail/
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

3)定義密碼文件/etc/rsyncd.secrets
[root@cmmailapp2 data]# cat /etc/rsyncd.secrets
coremail:coremail

4)啟動rsync啟動服務
[root@cmmailapp2 data]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes //需要修改為no;
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

[root@cmmailapp2 data]# chkconfig --level 2345 rsync on
[root@cmmailapp2 data]# chkconfig rsync on
[root@cmmailapp2 data]# chkconfig --level 2345 xinetd on
[root@cmmailapp2 data]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]

2、192.168.11.11_client端的配置;
[root@cmmailapp1 /]# cat /etc/rsyncd.secrets
coremail

[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/[email protected]::data
[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/[email protected]::mysql
[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/[email protected]::cmxt

五、定義定時自行rsync同步,指定同步的日誌所在的路徑/var/log/rsync/下;
[root@cmmailapp1 log]# cat /root/rsync.sh
DATE=`date +%Y%m%d%H%M`
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]::data>/var/log/rsync.date.$DATE
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]::mysql>/var/log/rsync.mysql.$DATE
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]::cmxt>/var/log/rsync.cmxt.$DATE

chmod u+x /root/rsync.sh

[root@cmmailapp1 log]# crontab -l
0 3 * * * /root/rsync.sh

執行時候的日子記錄文件:
[root@cmmailapp1 log]# ls |grep 'rsync'
rsync.cmxt.201110180915
rsync.date.201110180915
rsync.mysql.201110180915

『叄』 4-10.8 Linux 中的文件同步傳輸 --- rsync --delete 接收端鏡像形式備份源數據

2、執行 rsync -a --delete 把 SRC 目錄下的內容傳輸到 backups_delete 目錄,backups_delete 以鏡像形式保存 SRC 目錄的內容。backups_delete 目錄的內容和 SRC 目錄的內容保持一致。

3、第 2 點通過 -a --delete 完成了 SRC 目錄文件的備份,可能沒有突顯鏡像備份的形式。現在 backups_delete 增加一些內容,然後用 -a --delete 再傳輸一次數據作一個對比就會清晰了。

backups_delete 目錄下新增兩個目錄 directory1 和 directory2,directory1目錄新增一個 file3.txt 文件,directory2目錄新增一個 file4.txt 文件。操作 和 目錄結構如下:

-a --delete 再傳輸一次數據,可以發現剛才新建的目錄和文件都被刪除了,backups_delete 目錄只保存和 SRC 源目錄一致的內容。形成一個 SRC 目錄內容的鏡像。

4、同理,把 backups_delete 的 file1.txt 文件刪除,再用 -a --delete 再傳輸一次數據。

由上述實驗可以看出 --delete 作用於接收端,把目標目標以鏡像模式備份源目錄的數據。目標目錄比源目標多出的內容將會被刪除。對比源目錄,比源目錄少的內容會補上。

『肆』 linux下使用rsync同步文件時、如何判斷單個或某個文件同步是否成功

這個問題應該是可以解決的,只需要在你的命令行後面再加上一條命令就可以了。
# rsync .... || echo !$
命令的意思呢,就是說在執行前面的一個命令的時候,如果失敗了,那就會執行後山握謹面的echo !$命令,而!$變數的意思就是上一個命令執行後所跟的參數。也就是說,如果rsync命令在同步某一個文件的時候皮御出現錯誤,那這個文件名就會被!$所記錄下來,因此我認為通過這個命令就可以知道在執行rsync命令時,是那個文件出現問題了。命令經過本人的試驗是成功的,不過因為我的rsync沒有失敗,所以我是把|| 修改成&&來逗基測試的,原理上是一樣的。
不知道這樣的答案是LZ想要的嗎?

『伍』 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中rsync非同步伺服器實現文件同步與備份

Rsync
非常適合在兩台機器之間快速同步大型、復雜的目錄,例如論壇的附件目錄。再配合
ssh
,則安全性也有保證,且可以利用
ssh
public
key

cron
來進行自動定時同步。
說明:兩台機器分別為
localhost

remotehost
;用戶分別為
localuser

remoteuser。
環境:FreeBSD
4.9

FreeBSD
6.1
代碼如下

設置
ssh
public
key
認證
$ssh-keygen
-t
dsa
-b
2048
生成所需的密鑰
$scp
/home/localuser/.ssh/id_dsa.pub
remoteuser@remotehost:/home/remoteuser/.ssh/localuser_id_dsa.pub
將公鑰拷貝至
remotehost
$ssh
remoteuser@remotehost
登錄到?端
代碼如下

$cd
.ssh/
;
cat
localuser_id_dsa.pub
>>
authorized_keys
至此,設置
ssh
認證完畢。
設置
rsync
確認兩端機器都安裝
rsync

freeBSD

ports
,安裝非常方便。
寫個腳本名為
backup.sh
,內容如下:
代碼如下

#!/bin/sh
RSYNC=/usr/local/bin/rsync
SSH=/usr/bin/ssh
KEY=/home/localuser/.ssh
/id_rsa
RUSER=remoteuser
RHOST=remotehost
RPATH=/remote/dir
LPATH=/this/dir
$RSYNC
-az—delte
-e
“$SSH
-i
$KEY”
$RUSER@$RHOST:$RPATH
$LPATH
-a
選項相當於選項
-rlptgoD
。簡單來講,此選項可遞歸並將幾乎所有的東西同步過去,非常有用。注意的是,
-a
默認不會保存
hardlinks
,不過可以單獨用
-H
選項來實現。
-z
選項在傳輸中壓縮文件,這無疑加快同步速度。
-delete
選項會刪除接受方一些不應存在的文件,此文件在發送方已經被刪除,這將保持目錄完全同步。

cron
每天凌晨1點來跑這個腳本
代碼如下

$crontab
-e
0
1
*
*
*
/home/localuser/bin/backup.sh
友情提示
rsync是沒有自動啟動同步功能了,如果我們要定時去備份一個網站數據我們就需要用到定時功能了,上面的例子來使用到了linux中$crontab命令來定時執行備份數據腳本了哦。

『柒』 4-10.15 Linux 中的文件同步傳輸 --- rsync -P 傳輸時顯示進度

2、用 rsync -av -P 傳輸 SRC 目錄下 office_directory 目錄的文件到 backups_Packages。

傳輸列表內容圖解:

3、用 --progress 參數同樣也是顯示傳輸進度,效果和 -P 一樣。

『捌』 如何在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下使用rsync同步文件時、如何判斷單個或某個文件同步是否成功

這個問題應該是可以解決的,只需要在你的命令行後面再加上一條命令就可以了。
#
rsync
....
||
echo
!$
命令的意思呢,就是說在執行前面的一個命令的時候,如果失敗了,那就會執行後面的echo
!$命令,而!$變數的意思就是上一個命令執行後所跟的參數。也就是說,如果rsync命令在同步某一個文件的時候出現錯誤,那這個文件名就會被!$所記錄下來,因此我認為通過這個命令就可以知道在執行rsync命令時,是那個文件出現問題了。命令經過本人的試驗是成功的,不過因為我的rsync沒有失敗,所以我是把||
修改成&&來測試的,原理上是一樣的。
不知道這樣的答案是LZ想要的嗎?

『拾』 rsync 安裝步驟、服務端、客戶端、同步文件

需要定時把客戶機上的文件增量同步到伺服器上,達到備份效果。

伺服器:linux系統
客戶機:windows系統

1.linux上安裝rsync服務端;
2.windows上安裝rsync客戶端;
3.客戶端上每5分鍾觸發一次同步。

# vi /usr/local/rsync/rsyncd.conf

# vi /usr/local/rsync/rsyncd.secrets
鍵入: # testUser:123456 後保存。
此文件許可權必須設置:600:
# chmod 600 /usr/local/rsync/rsyncd.secrets

# vi /usr/local/rsync/rsyncd.motd
鍵入歡迎語,如:
# welcome use rsync service

# /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf

# ps aux | grep rsyncd

# vi /etc/rc.local
鍵入:
# /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf

# firewall-cmd --permanent --zone=public --add-port=873/tcp
# firewall-cmd --reload

123456

# chmod.exe 600 /cygdrive/c/etc/rsync.client.password

windows下,文件右鍵屬性-安全-高級-修改所有者-鍵入administrator-檢查名稱-保存

C:\etc\waveform_analysis

# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/c/etc/rsync.client.password testUser@伺服器IP::testMole /cygdrive/c/etc/waveform_analysis

# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/c/etc/rsync.client.password /cygdrive/c/etc/waveform_analysis/ testUser@伺服器IP::testMole

rsync的缺陷在於無法實現主動觸發同步,可以安裝成服務,然後定時執行同步,比如每5分鍾觸發一次同步:
使用 nssm 把 bat 安裝成 windows 服務 - (jianshu.com)

熱點內容
編譯好的內核如何升級另一台主機 發布:2025-05-15 02:00:06 瀏覽:757
彈反腳本 發布:2025-05-15 01:58:24 瀏覽:585
安卓按鍵大師怎麼用 發布:2025-05-15 01:54:12 瀏覽:686
手機ea伺服器連不上怎麼辦 發布:2025-05-15 01:35:03 瀏覽:450
資料庫數據插入語句 發布:2025-05-15 01:30:01 瀏覽:871
js是無需編譯直接運行嗎 發布:2025-05-15 01:28:30 瀏覽:476
android文件夾重命名 發布:2025-05-15 01:13:50 瀏覽:481
cns腳本 發布:2025-05-15 01:13:38 瀏覽:722
數據結構與演算法筆試題 發布:2025-05-15 01:04:20 瀏覽:417
搜狗輸入法如何直接編輯配置文件 發布:2025-05-15 00:51:47 瀏覽:668