Linux 服務器間文件傳輸命令以及同步命令rsync的使用

*******************************也可以用文件共享nfs

 

scp命令的實際應用

1>從本地服務器複製到遠程服務器

實例:

scp /home/linux/soft/scp.zip [email protected]:/home/linux/others/soft

 

(2) 複製目錄

scp -P 2002 -r /home/linux/soft/ [email protected]:/home/linux/others/

2>從遠程服務器複製到本地服務器

scp [email protected]:/home/linux/soft/scp.zip /home/linux/others/scp.zip

scp www.mydomain.com:/home/linux/soft/ -r /home/linux/others/

 

 

scp 加端口

 scp -P ×××  test.tar.gz      root@×××:/root/

 

rsync的用法

安裝yum install rsync 

which rsync  查找安裝的位置

rmp -qf /usr/bin/rsync  查找軟件包

 

參考地址:http://www.ttlsa.com/web/let-infotify-rsync-fast/

rsync是類unix系統下的數據鏡像備份工具,從軟件的命名上就可以看出來了——remote sync。rsync是Linux系統下的文件同步和數據傳輸工具,它採用“rsync”算法,可以將一個客戶機和遠程文件服務器之間的文件同步,也可以在本地系統中將數據從一個分區備份到另一個分區上。如果rsync在備份過程中出現了數據傳輸中斷,恢復後可以繼續傳輸不一致的部分。rsync可以執行完整備份或增量備份。它的主要特點有:

1.可以鏡像保存整個目錄樹和文件系統;

2.可以很容易做到保持原來文件的權限、時間、軟硬鏈接;無須特殊權限即可安裝;

3.可以增量同步數據,文件傳輸效率高,因而同步時間短;

4.可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接;

5.支持匿名傳輸,以方便進行網站鏡象等;

6.加密傳輸數據,保證了數據的安全性;

一。實例:(文件由117複製到114的配置)(備註:這個用法相當於“拉”源服務器的文件備份到當前服務器)

1、資源服務器117配置, 目錄:/etc/rsyncd.conf  內容(安裝yum -y install rsync後就會在etc目錄下有rsyncd.conf文件配置下面需求就可以了)

#[global]設置全局變量
uid=0
gid=0
max connections=50
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
secrets file=/etc/rsyncd.server

hosts allow = 192.168.1.114
hosts deny = *

#上傳文件
[UploadFile]
path = /home/cooguo/uploadfiles
comment = UploadFile
ignore errors
read only = yes
list = yes
auth users = work
secrets file = /etc/rsyncd.server

#自動打包文件
[repack]
path=/home/cooguo/repack
comment=repack
ignore errors
read only = yes
list = yes
auth users = work
secrets file = /etc/rsync.server

 

 

保存虛擬用戶密碼:/etc/rsyncd.server (權限需要600)

 

重啓:rsync --daemon --config=/etc/rsyncd.conf 

 

2、目標服務器114,執行配置/home/cooguo/rsync.sh如圖

 

#! /bin/sh
logFile=/home/cooguo/rsync_log.txt
message=/home/cooguo/rsync_message.txt
cdate=$(date '+%Y-%m-%d %H:%M')
echo " " >> $logFile
echo " " >> $logFile
echo " " >> $logFile
echo "------------------開始增量備份,時間:$cdate -------------------------" >> $logFile

#echo "-----備份webapp-----" >> $logFile
#/usr/bin/rsync -avz --progress --exclude=*.log --exclude=*.out --exclude=logs/ --password-file=/home/cooguo/rsyncd.secrets [email protected]::Webapp /home/cooguo/veegaoserver/webapp/ >> $message
#sleep 5

#echo "-----備份server1-----" >> $logFile
#/usr/bin/rsync -avz --progress --exclude=*.log --exclude=*.out --exclude=logs/ --password-file=/home/cooguo/rsyncd.secrets [email protected]::server1 /home/cooguo/server1/ >> $message

echo "-----備份uploadfile27-----" >> $logFile
/usr/bin/rsync -avz --progress --password-file=/home/cooguo/rsyncd.secrets [email protected]::UploadFile /home/cooguo/veegaoserver/uploadfiles/ >> $message


echo "-----備份cdn-----" >> $logFile
/usr/bin/rsync -avz --progress --password-file=/home/cooguo/rsyncd.secrets [email protected]::cdn /home/cooguo/veegaoserver/cdn/ >> $message



#echo "-----備份repack-----" >> $logFile
#/usr/bin/rsync -avz --progress --password-file=/home/cooguo/rsyncd.secrets [email protected]::repack /home/cooguo/cxptserver/repack/ >> $message


#sleep 5
#echo "-----備份cxptsClient1-----" >> $logFile
#/usr/bin/rsync -avz --progress --exclude=*.log --exclude=*.out --exclude=logs/ --password-file=/home/cooguo/rsyncd.secrets [email protected]::client1 /home/cooguo/client1/ >> $message

 

 

文件/home/cooguo/rsyncd.secrets配置內容:

njgwork123

 

配置後好啓動同步功能:

rsync --daemon --config=/etc/rsyncd.conf 

 

 

二.通過rsync+inotify實現數據的實時備份(備註:相當於推文件到備份服務器)

1.查看是否支持inotify,出kernel2.6.13開始正式併入內核

[root@localhost download]# ll /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Apr 27 14:53 max_queued_events
-rw-r--r-- 1 root root 0 Apr 27 14:53 max_user_instances
-rw-r--r-- 1 root root 0 Apr 27 14:53 max_user_watches

在linux內核中,默認的inotify機制提供了三個調控參數:

max_queued_exents #表示監控事件隊列

max_user_instances #表示最多監控實例數

max_user_watches #表示每個實例最多監控文件數

注:當要監控的目錄,文件數量較多或者變化比較頻繁時,要加大這三個數的值

例如:可直接修改/etc/sysctl.conf配置文件,將管理隊列設爲32768,

實例數設爲1024,監控數設爲9000000(建議大於監控目標的總文件數)

改完-需要生效 執行sysctl -p

 

 

比如172.16.204.139 文件 同步到 172.16.204.138

 

172.16.204.138 安裝

安裝rsync

 

修改/etc/rsyncd.conf

 

#[global]設置全局變量
uid=0
gid=0
max connections=50
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
secrets file=/etc/rsyncd.server

hosts allow = 172.16.204.138
hosts deny = *

#上傳文件
[UploadFile]
path = /data/syhd_storage/game/uploadCommentImg
comment = UploadFile
ignore errors
read only = yes
list = yes
auth users = work
secrets file = /etc/rsyncd.server

 

 

修改 /etc/rsync.secrets (權限需要600)

rsynclsl:hetao123456

 

配置後好啓動同步功能:

rsync --daemon --config=/etc/rsyncd.conf 

 

 

172.16.204.139

安裝rsync+inotify

 

安裝rsync和inotify(rsync只安裝不啓動不配置)

1

yum install -y rsync

3、inotify是一種強大的、細粒度的、異步的文件系統事件控制機制。linux內核從2.6.13起,加入了inotify支持,通過inotify可以監控文件系統中添加、刪除、修改、移動等各種事件,利用這個內核接口,第三方軟件就可以監控文件系統下文件的各種變化情況,而inotify-tools正是實施監控的軟件。

1

2

3

4

5

#wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

#tar zxf inotify-tools-3.14.tar.gz

#cd inotify-tools-3.14

#./configure --prefix=/usr/local/inotify

 

#  make && make install        

 

 

 

#touch  inotify.sh

 

修改

inotify.sh

 

#!/bin/bash
host=172.16.204.138 #server的ip(備份服務器)
src=/data/syhd_storage/game/uploadCommentImg #所要監控的備份目錄(此處可以自定義,但是要保證存在)
des=UploadFile #自定義的模塊名,需要與client端定義的一致
password=/etc/rsync.password #密碼文件(權限需要600)
user=rsynclsl #用戶名(一個實際存在的賬號)
inotify=/usr/local/inotify #inotify的安裝目錄

${inotify}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
do
/usr/bin/rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des
echo "${files} was rsynced" >>/data/inotify/rsync.log 2>&1
done

 

修改/etc/rsync.password

hetao123456

 

 

後端運行

nohup  /data/inotify/inotify.sh >rsync.log   2>&1 &

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章