tutorials
ubuntu
linux
SSH
file transfer
$ rsync -vrazh --info=progress2 -e 'ssh -p {port_num}' {dir_or_path} {remote_username}@{remote_ip}:{remote_location}
-v
: verbose 模式,輸出比較詳細的訊息。-r
: 遞迴(recursive)備份所有子目錄下的目錄與檔案。-a
: 封裝備份模式,相當於 -rlptgoD,遞迴備份所有子目錄下的目錄與檔案,保留連結檔、檔案的擁有者、群組、權限以及時間戳記。-z
: 啟用壓縮。(降低網路使用量,不過由於壓縮需要時間會導致傳輸耗時增加,如果網速夠快則可以不用加)-h
: 將數字以比較容易閱讀的格式輸出。--info=progress2
: 顯示目前整體傳送百分比,--info=progress
則是會依照個檔案顯示該檔案傳送百分比--progress
: 可以顯示傳送進度-e
: 指定遠端登入所要使用的指令 (搭配後面字串)
ssh
: 以 ssh 方式連線-p
: 指定 port
/
,如果只要複製資料夾內容所有檔案則結尾要加 /
)更多資訊可以參考: https://blog.gtwang.org/linux/rsync-local-remote-file-synchronization-commands/
例如
$ rsync -e 'ssh -p 2266' -ah --info=progress /local/path/to/dir msp@123.456.78.999:/remote/to/path/
這個指令就是將本地端 /local/path/to/dir
整個 dir
資料夾傳送到 123.456.78.999
的 msp
使用者的 /remote/to/path/
資料夾下,並使用 ssh
的 port 2266
連線,使用 --info=progress
列出目前傳送的資訊
- 如果將
/local/path/to/dir
改寫成/local/path/to/dir/
則是將資料夾下的所有檔案傳送過去,不會傳送dir
資料夾本身--info=progress
也可寫成--progress