scp和rsync的使用

通過一些簡單需求了解scp和rsync的使用

scp的備份指南:

需求:用scp自動完成異地文件的定時copy
難點:如何讓異地主機建立安全的信任關系

1、在A機器上用root運行ssh-keygen,將生成/root/.ssh/identity和/root/.ssh/identity.pub兩個文件;

2、在A機器上運行scp /root/.ssh/identity.pub test@192.168.1.10:/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/* test@192.168.1.10:/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以上(http://rsync.samba.org),在/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 rsynctest@192.168.1.10::test /home/rsynctest

rsync中的參數:v是verbose,z是壓縮,r是recursive,tp都是保持文件原有屬性如屬主、時間
的參數。–progress是指顯示出詳細的進度情況,–delete是指如果服務器端刪除了這一文件,那么客戶端也相應把文件刪除,保持真正的一致。–password-file=/etc/test來指定密碼文件,這樣就可以在腳本中使
用而無需交互式地輸入驗證密碼了,這里需要注意的是這份密碼文件權限屬性要設得只有屬主可讀(600)。

rsynctest@192.168.1.10中,rsynctest是指定密碼文件中的用戶名,192.168.1.10是A主機的IP地址::test是指模塊名[test],也就是在/etc/rsyncd.conf中自定義的名稱。最后的/home/rsynctest是備份到本地的目錄名。
(也可以用-e ssh的參數建立起加密的連接,然后和scp中信任主機的辦法一樣如法炮制)
(在上面實例中的rsynctest并不是真實的用戶,可以根據自己需要文本定義,這也是使用rsync的一大好處)

rsync的特點:
特性如下:

1、可以鏡像保存整個目錄樹和文件系統。
2、可以很容易做到保持原來文件的權限、時間、軟硬鏈接等等。
3、無須特殊權限即可安裝。
4、優化的流程,文件傳輸效率高。
5、可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接。
6、支持匿名傳輸。

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

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87383

(3)
眼一睜眼一睜
上一篇 2017-09-18 15:35
下一篇 2017-09-18 16:43

相關推薦

  • LVM2基本應用,擴展及縮減實現

    LVM(Logical Volume Manager,邏輯卷管理)是CentOS6中常用的磁盤管理的工具。常用于CentOS6上,提供了分區的動態擴展、縮減等功能。目前的常用版本為LVM2。 結構: 一、物理卷 LVM的物理卷以分區為單位。通常情況下,會以一個硬盤一個分區的情況下進行容量擴展。 在分區之后,要使用fisk命令來改變分區的類型,LVM的磁盤類型…

    Linux干貨 2016-02-25
  • linux系統上的特殊權限SUID,SGID,STICKY

    特殊權限:SUID SGID STICKY     linux的安全上下文:     1.進程以用戶的身份運行,進程是發起此用戶的代理,因此以此用戶的身份和權限完成所有的操作。     2.權限匹配模型:     1)判斷進程的屬主,是否以被訪問的文件屬主。如果是,則應用屬主權限…

    Linux干貨 2016-08-05
  • sed 高級編輯命令、模式空間、保持空間、vi 可視化模式、vimrc、地址定界

    sed 高級編輯命令、模式空間、保持空間、vi 可視化模式、vimrc、地址定界 sed(stream deitor):行編輯器 【概述】sed是一種流式編輯器,它一次處理一行內容。處理時,把當前處理的行的所有內容存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,逐行處理,不修改文件。sed主要…

    Linux干貨 2016-08-11
  • Linux基礎之正則表達式

    正則表示式語法及在grep命令中的引用

    2017-09-09
  • linux 中的 文本處理工具

    文本處理工具  在linux系統中 文本工具有很多 現在具體介紹幾款 如 抽取文本的工具 和文件三劍客  文件內容:less和 cat   文件截?。篽ead和tail   按列抽取:cut   按關鍵字抽?。篻rep egrep 首先 有 查看文件的cat tac  cat [OPTION]&#8…

    Linux干貨 2016-08-11
  • 系統基礎之用戶,組管理作業題

    、創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser 1 2 3 [root@wen-7 ~]# useradd -u 1234 -g bin -G root,ftp&nbsp…

    Linux干貨 2016-08-04
欧美性久久久久