linux備份文件
⑴ Linux下數據備份命令scp、rsync和後台運行
scp和rsync 均可實現文件的復制,但相比較,scp佔用系統資源較小,rsync速度較快。當小文件眾多時,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用。可根據需要這倆選其一實現文件復制。
scp 是secure 的縮寫,scp是Linux系統下基於ssh登錄進行安全的遠程文件拷貝命令。
可以實現本地文件復制到遠程伺服器,也可以將遠程文件復制到本地。
rsync 是remote sync的縮寫。使用rsync備份數據時,不會直接覆蓋以前的數據(如果數據已經存在),而是先判斷已存在的數據和新數據的差異(默認規則是文件大小或修改時間有差異),只有數據不相同時才會把不相同的部分覆蓋。在僅作增量數據的時比scp靈活。
一般CentOS默認安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。
單個冒號和雙冒號的區別 :使用rsync在遠程傳輸數據前,是需要進行登陸認證的,這個過程可使用ssh協議也可以使用rsync協議完成。單冒號(:)使用的是ssh協議;雙冒號(::)使用的是rsync協議。
默認情況下,rsync只確保源文件的所有內容(明確排除的文件除外)都復制到目標目錄。它不會使兩個目錄保持不同,並且不會刪除文件。如果要使目標目錄成為源目錄的鏡像副本,則使用--delete選項。可刪除只存在目標目錄,不存在於源目錄的文件。
增量備份算是一個經常使用的場景了。兩台伺服器之間進行文件定期備份,無需所有文件都一遍,僅復制有變動的文件。
具體做法是,第一次同步是全量備份,所有文件在基準目錄裡面同步一份。以後每一次同步都是增量備份,只同步源目錄與基準目錄之間有變動的部分,將這部分保存在一個新的目標目錄。這個新的目標目錄之中,也是包含所有文件,但實際上,只有那些變動過的文件是存在於該目錄,其他沒有變動的文件都是指向基準目錄文件的硬鏈接。
--link-dest 參數用來指定同步時的基準目錄。
上面命令中, --link-dest 參數指定基準目錄 /compare/path ,然後源目錄 /source/path 跟基準目錄進行比較,找出變動的文件,將它們拷貝到目標目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,後面就都是增量備份了。
一般伺服器之間復制文件都比較大,為防止誤操作,最好在後台運行。但因為需要和遠程伺服器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置於後台。無論是scp還是rsync都可操作如下:
後台和前台任務的切換
scp不支持斷點續傳,掛起scp進程可能導致數據缺失。傾向於使用rsync。
如果有其他任務需要使用nohup後台運行,但執行時卻忘記了使用nohup,也可參照此方法進行設置。
參考:1. Linux之scp命令及後台運行scp