rsync 取代 cp , 有進度狀態, 又可保留權限

Posted by ivo Blog on March 5, 2015

rsync -av 本機路徑 遠端路徑 例如:

程式碼
1
rsync -av /home/davidou/rsync/xxx.txt davidou@192.168.1.1::backup/
這邊就是說要用rsync 把本機的/home/davidou/rsync/xxx.txt 備份到遠端的davidou@192.168.1.1::backup/
使用rsync最快速删除海量文件的方法
1、先安装rsync:
yum install rsync
2、建立一个空的文件夹:
mkdir /tmp/test
3、用rsync删除目标目录:
rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/
这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。

选项说明:
–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
–stats 给出某些文件的传输状态

用cp -ap /來源目錄 /目的路徑 是不錯, 但複製大檔時,常不知進度到那了?

所以用rsync 可以看進度, 更好的是如有更新, 還可以只複製更新的部份~

rsync -avP /來源目錄 /目的路徑/

說明:

rsync -avP /source/data /destination/
會將資料夾 data 複製到 /destination/data 下.

如果是:

rsync -avP /source/data/ /destination/

就會將資料夾 data/.所有內容, 複製到 /destination/下!

rsync語法:

rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]
選項與參數:
-v :觀察模式,可以列出更多的資訊,包括鏡像時的檔案檔名等;
-q :與 -v  相反,安靜模式,略過正常資訊,僅顯示錯誤訊息;
-r :遞迴複製!可以針對『目錄』來處理!很重要!
-u :僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋;
-l :複製連結檔的屬性,而非連結的目標原始檔案內容;
-p :複製時,連同屬性 (permission) 也保存不變!
-g :保存原始檔案的擁有群組;
-o :保存原始檔案的擁有人;
-D :保存原始檔案的裝置屬性 (device)
-t :保存原始檔案的時間參數;
-I :忽略更新時間 (mtime) 的屬性,檔案比對上會比較快速;
-z :在資料傳輸時,加上壓縮的參數!
-e :使用的通道協定,例如使用 ssh 通道,則 -e ssh
-a :相當於 -rlptgoD ,所以這個 -a 是最常用的參數了!