用 rsync 工具實現本地和遠程服務器文件同步 | 安裝和基本操作指南
Linu 服務器中,或者要實現本地和服務器的文件同步。FTP 文件傳輸協(xié)議是大家都熟知的實現方案,今天給大家介紹一個很好用的工具 rsync。
rsync
rsync 是 remote sync 的含義,表示遠程同步,當時我們也可以同步兩個本地的文件夾,此時命令的效果類型 cp 命令。
不過與其他文件傳輸工具(如 FTP 或 scp)不同,rsync 的最大特點是會檢查發(fā)送方和接收方已有的文件,僅傳輸有變動的部分(默認規(guī)則是文件大小或修改時間有變動)。
這個特性對于我們經常寫博客的朋友也很有幫助,因為我們經常會需要將博客進行備份。
安裝
根據系統(tǒng)類型的不同,安裝的命令也不相同
# Debian
$ sudo apt-get install rsync
# Red Hat
$ sudo yum install rsync
# Arch Linux
$ sudo pacman -S rsync
# macOS
brew install rsync
了不起這邊是 macOS 系統(tǒng),就直接選擇最后一種方式進行安裝了,當然遠程的服務器也需要進行安裝。
基操
本地同步
本地使用 rsync 的命令為 rsync -r source destination,表示將 source 位置的文件夾里面的內容全部同步到 destination 文件夾里面,同時也支持多個 source 位置,命令是這樣的 rsync -r source1 source2 destination。
其中需要注意的是 -r表示遞歸,即包含子目錄,而且是必須的,否則 rsync 運行不會成功。
執(zhí)行命令 rsync -r source1 source2 ./destination 效果如下,會將 source1 和 source2 兩個文件夾都同步到 destination 文件夾下面,如果只同步文件則可以使用 rsync -r source1/ source2/ ./destination 則只會同步文件到目標文件夾。
雖然說上面的命令可以正常的使用,但是在真正使用命令的時候,我們會將上面命令中的 -r 參數替換成 -a 參數,因為 -a 參數不但可以遞歸同步同時也可以同步文件的元數據,比如創(chuàng)建時間,修改時間這些,所以 -a 比 -r 參數更加實用。
同時為了讓我們知道哪些文件被真正的同步了,我們還會實用 -v 參數,-v 參數會將真正同步了的文件在終端中輸出出來,方便我們知曉,所以往往本地最終執(zhí)行的命令是這樣的。
rsync -av source destination
遠程同步
上面的命令是在本地執(zhí)行,如果想要將本地的文件同步到遠程服務器,那我們就需要結合 SSH 協(xié)議來實現了,整體的命令是這樣的
rsync -av source [email protected]:/destination
輸入命令過后,在輸入一下對應的 root 賬號密碼即可。
如果我們的 SSH 的端口不是默認的22 端口,則需要使用 -e 參數來設置端口,命令如下
rsync -av -e 'ssh -p 22222' source [email protected]:/destination
可以看到服務器上面已經同步了對應的文件了
免密登錄
正常在使用上面遠程同步命令的時候,都需要我們再次手動輸入服務器賬號對應的密碼,我們都知道 SSH 是可以免密登錄的,我們只需要生成一個公鑰和私鑰,然后將公鑰發(fā)送到服務器上面,發(fā)送的時候輸入一次密碼,以后在執(zhí)行遠程同步命令的時候就可以免密登錄不用輸入密碼了。
先生成公鑰和秘鑰
ssh-keygen
根據提示一步一步回車就行,最終會在 .ssh 目錄中生成id_rsa 和 id_rsa.hub 兩個文件,然后我們在通過下面的命令將公鑰發(fā)送到遠程服務器上面。
ssh-copy-id -i ./id_rsa.pub -p 22 [email protected]
發(fā)送的時候會要求輸入一次密碼,成功以后我們再執(zhí)行同步命令,就不會再需要密碼了。
擴展思考
至此我們已經實現了本地和遠程服務器的文件同步功能,那么我們完全可以再更進一步,在本地搞個定時器,定期的自動執(zhí)行同步功能,而不是每次我們都手動同步,這個就交給大家自己去實踐了,感興趣的可以去研究一下。
總結
今天給大家介紹了一個好用的遠程服務器同步命令,在我們日常工作和學習中都可以用起來,更多好玩好用的軟件分享,歡迎根據下面提示加群,我們一起交流。
參考文章:https://www.ruanyifeng.com/blog/2020/08/rsync.html
END
關注 Stephen,一起學習,一起成長。
點“在看”支持下吧
點 閱讀原文 可優(yōu)惠充值話費,流量,視頻會員等。
