遠端備份有好多,這裡介紹2種:scp和rsync
scp基于NFS伺服器類似cp的,沒有斷點備份
rsync在Linux系統之間備份非常友善
一、遠端拷貝檔案scp
sudo scp -r -P 7122 /home/setup/main.c [email protected]:/home/setup
sudo scp -r -P 7122 [email protected]:/home/setup/main.c /home/setup
如果傳輸檔案夾加上參數:-r
如果不是預設端口号20需要加上端口号:-P 7122
注意:“-P” 是大寫的
二、遠端備份檔案rsync
Rsync(remote synchronize) 是一個遠端資料同步工具,可以使用“Rsync算法”同步本地和遠端主機之間的檔案。rsync的好處是隻同步兩個檔案不同的部分,相同的部分不在傳遞。類似于增量備份,這使的在伺服器傳遞備份檔案或者同步檔案,比起scp工具要省好多時間。
伺服器:
1、安裝Rsync
sudo apt-get install rsync
2、rsync服務預設不是啟動的,我們要修改下面的檔案。
sudo vi /etc/default/rsync
RSYNC_ENABLE=true #false改true
3、修改配置檔案
sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc #已預設安裝的軟體,預設不啟動的似乎都要這麼做
sudo vi /etc/rsyncd.conf
4、建立一個密碼檔案
sudo vi /etc/rsyncd.secrets
setup:123
sudo chmod 600 /etc/rsyncd.secrets
5、啟動rsync
sudo /etc/init.d/rsync start
用戶端:
1、把這個同步工作交給crontab去執行。首先我們要建立一個密碼檔案
sudo vi /etc/rsync.pwd
123
2、下面這兩步操作是必須的,沒有足夠權限同步就會不成功,ls -l 你所指向的目錄
sudo chmod 0600 /etc/rsync.pwd
sudo chown 普通使用者:普通使用者組 /etc/rsync.pwd
3、然後我們打開crontab,使它自動同步
$crontab -e
* * * * * rsync -a --password-file=/etc/rsync.pwd [email protected]::my_rsync_bk /databk
4、crontab随機啟動 sudo vi /etc/rc.local
參數說明:
-v verbose,即詳細模式
-z 壓縮
-r recursive 遞歸
-topg 保持檔案原有屬性,一般不用加
--progress 用來顯示詳細進度情況
--delete 表示如果伺服器删除了一個檔案,用戶端也應對應删除
--exclude="*.sh" 表明不包括某些檔案
--password-file=/etc/rsync.pwd 指定所使用的密碼檔案
最後一項是需要同步的目錄
注意指定使用的密碼檔案中隻需要有密碼,不要有使用者名。
詳細格式說明:
v, verbose 詳細模式輸出
q, quiet 精簡輸出模式
c, checksum 打開校驗開關,強制對檔案傳輸進行校驗
a, archive 歸檔模式,表示以遞歸方式傳輸檔案,并保持所有檔案屬性,等于rlptgoD
r, recursive 對子目錄以遞歸模式處理
R, relative 使用相對路徑資訊
b, backup 建立備份,也就是對于目的已經存在有同樣的檔案名時,将老的檔案重新命名為
~filename。可以使用suffix選項來指定不同的備份檔案字首。
backupdir 将備份檔案(如~filename)存放在在目錄下。
suffix=SUFFIX 定義備份檔案字首
u, update 僅僅進行更新,也就是跳過所有已經存在于DST,并且檔案時間晚于要備份的檔案。
(不覆寫更新的檔案)
l, links 保留軟鍊結
L, copylinks 想對待正常檔案一樣處理軟鍊結
copyunsafelinks 僅僅拷貝指向SRC路徑目錄樹以外的鍊結
safelinks 忽略指向SRC路徑目錄樹以外的鍊結
H, hardlinks 保留硬鍊結
p, perms 保持檔案權限
o, owner 保持檔案屬主資訊
g, group 保持檔案屬組資訊
D, devices 保持裝置檔案資訊
t, times 保持檔案時間資訊
S, sparse 對稀疏檔案進行特殊處理以節省DST的空間
n, dryrun現實哪些檔案将被傳輸
W, wholefile 拷貝檔案,不進行增量檢測
x, onefilesystem 不要跨越檔案系統邊界
B, blocksize=SIZE 檢驗算法使用的塊尺寸,預設是700位元組
e, rsh=COMMAND 指定替代rsh的shell程式
rsyncpath=PATH 指定遠端伺服器上的rsync指令所在路徑資訊
C, cvsexclude 使用和CVS一樣的方法自動忽略檔案,用來排除那些不希望傳輸的檔案
existing 僅僅更新那些已經存在于DST的檔案,而不備份那些新建立的檔案
delete 删除那些DST中SRC沒有的檔案
deleteexcluded 同樣删除接收端那些被該選項指定排除的檔案
deleteafter 傳輸結束以後再删除
ignoreerrors 及時出現IO錯誤也進行删除
maxdelete=NUM 最多删除NUM個檔案
partial 保留那些因故沒有完全傳輸的檔案,以是加快随後的再次傳輸
force 強制删除目錄,即使不為空
numericids 不将數字的使用者群組ID比對為使用者名群組名
timeout=TIME IP逾時時間,機關為秒
I, ignoretimes 不跳過那些有同樣的時間和長度的檔案
sizeonly 當決定是否要備份檔案時,僅僅察看檔案大小而不考慮檔案時間
modifywindow=NUM 決定檔案是否時間相同時使用的時間戳視窗,預設為0
T tempdir=DIR 在DIR中建立臨時檔案
comparedest=DIR 同樣比較DIR中的檔案來決定是否需要備份
P 等同于 partial progress 顯示備份過程
z, compress 對備份的檔案在傳輸時進行壓縮處理
exclude=PATTERN 指定排除不需要傳輸的檔案模式
include=PATTERN 指定不排除而需要傳輸的檔案模式
excludefrom=FILE 排除FILE中指定模式的檔案
includefrom=FILE 不排除FILE指定模式比對的檔案
version 列印版本資訊
address 綁定到特定的位址
config=FILE 指定其他的配置檔案,不使用預設的rsyncd.conf檔案
port=PORT 指定其他的rsync服務端口
blockingio 對遠端shell使用阻塞IO
stats 給出某些檔案的傳輸狀态
progress 在傳輸時現實傳輸過程
logformat=FORMAT 指定日志檔案格式
passwordfile=FILE 從FILE中得到密碼
bwlimit=KBPS 限制I/O帶寬,KBytes per second
crontab随機啟動 sudo vi /etc/rc.localh, help 顯示幫助資訊
大牛部落格:http://blog.csdn.net/bugouyonggan/article/details/21970867