scp和rsync的使用

2021-09-01 12:09:59 字數 2545 閱讀 1876

scp的備份指南:

需求:用scp自動完成異地檔案的定時copy

難點:如何讓異地主機建立安全的信任關係

1、在a機器上用root執行ssh-keygen,將生成/root/.ssh/identity和/root/.ssh/identity.pub兩個檔案;

2、在a機器上執行scp /root/.ssh/identity.pub [email protected]:/upload/.ssh/authorized_keys(假設b機器的ip位址為192.168.1.10,b機器上開了使用者test,要上傳到的目錄是/upload,需輸入密碼)。目的是將本地的identity.pub放到遠端機器上並改名為authorized_keys,這樣就建立了新任主機,以後就不需要每次ssh都需要輸入密碼了;

3、通過crontab建立指令碼,例:30 02 * * 1-5 scp /home/data/* [email protected]:/upload。

(每天2:30am自動將/home/data下面的所有檔案以test使用者名稱傳到遠端主機192.168.1.10的/upload目錄中);

認證原理:

如果你希望從a作為使用者user1 ssh 到b 作為使用者user2, 若要用rsa鍵對法認證且不需要密碼,則b上的ssh 後台程式拿出~user2/.ssh/authorized_keys中的與a有關的rsa公鑰來對a上的以user1身份執行的ssh客戶程式進行挑戰,前面我們已經把a上的identity.pub拷貝到b上作為authorized_keys了。則a保持私鑰identity,而b上的sshd又拿出a的公鑰來挑戰,因此成功,你可以加很多行到authorized_keys以允許其它伺服器的公鑰可以加進來。

scp特點:

使用ssl加密,安全性高。

rsync的備份指南:

需求:用rsync完成異地檔案的同步

難點:如何建立異地信任關係

1、在a主機上(rsync伺服器)上編譯安裝rsync,需要版本在2.4.3以上(在/etc目錄下建立rsyncd.conf檔案,內容如下:

uid = nobody

gid = nobody

use chroot = no # 不使用chroot

max connections = 4 # 最大連線數為4

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock # 日誌記錄檔案

[test] # 這裡是認證的模組名,在客戶端需要指定

path = /home/test # 需要同步的目錄

comment = test folder

uid = root

ignore errors # 可以忽略一些無關的io錯誤

read only = yes # 唯讀

list = no # 不允許列檔案

auth users = rsynctest # 認證的使用者名稱,如果沒有這行,則表明是匿名

secrets file = /etc/test.scrt # 認證使用者密碼檔案

2、在/etc下建立test.scrt檔案,輸入:

使用者名稱:密碼

例:rsynctest:testrsync

將檔案屬性修改為600(千萬注意)

3、啟動rsync服務:rsync --daemon (rsync執行在tcp 873埠,可以通過netstat -an|grep listen察看)。

4、在b主機上(rsync客戶機)上建立/etc/test檔案,內容為a主機的密碼,例:

testsync

5、用crontab建立指令碼,例:0 21 * * 1-5 rsync -vzrtp --progress --delete --password-file=/etc/test [email protected]::test /home/rsynctest

rsync中的引數:v是verbose,z是壓縮,r是recursive,tp都是保持檔案原有屬性如屬主、時間

的引數。--progress是指顯示出詳細的進度情況,--delete是指如果伺服器端刪除了這一檔案,那麼客戶端也相應把檔案刪除,保持真正的一致。--password-file=/etc/test來指定密碼檔案,這樣就可以在指令碼中使

用而無需互動式地輸入驗證密碼了,這裡需要注意的是這份密碼檔案許可權屬性要設得只有屬主可讀(600)。

(也可以用-e ssh的引數建立起加密的連線,然後和scp中信任主機的辦法一樣如法炮製)

(在上面例項中的rsynctest並不是真實的使用者,可以根據自己需要文字定義,這也是使用rsync的一大好處)

rsync的特點:

特性如下:

1、可以映象儲存整個目錄樹和檔案系統。

2、可以很容易做到保持原來檔案的許可權、時間、軟硬鏈結等等。

3、無須特殊許可權即可安裝。

4、優化的流程,檔案傳輸效率高。

5、可以使用rcp、ssh等方式來傳輸檔案,當然也可以通過直接的socket連線。

6、支援匿名傳輸。

rsync的功能還很強大,深入的眼就可以到官方**上了解。

Linux遠端複製scp和rsync詳解

1.scp scp是secure copy的簡寫,用於在linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的,它使用ssh安全協議傳輸資料。scp系統開消小不佔資源,不會提高多少系統負荷。雖然 rsync只傳送修改的部分。1.1 命...

scp(安全拷貝)和rsync(增量複製)

又稱為全量複製,每次複製都會複製所有檔案。使用 scp r 原始檔使用者名稱a 主機名1 path1 目標檔案使用者名稱b 主機名2 path2 r 遞迴,複製目錄執行過程 要求 使用者名稱a 主機名1 對path1有讀許可權 使用者名稱b 主機名2 對path2有寫許可權 可以只同步變化的檔案 對...

scp(安全拷貝)和rsync(增量複製)

又稱為全量複製,每次複製都會複製所有檔案。使用 scp r 原始檔使用者名稱a 主機名1 path1 目標檔案使用者名稱b 主機名2 path2 r 遞迴,複製目錄執行過程 要求 使用者名稱a 主機名1 對path1有讀許可權 使用者名稱b 主機名2 對path2有寫許可權 可以只同步變化的檔案 對...