<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用 rsync 工具實現本地和遠程服務器文件同步 | 安裝和基本操作指南

          共 2728字,需瀏覽 6分鐘

           ·

          2023-09-26 23:17

          日常工作和學習中我們經常需要將本地的文件同步到遠程 Linu 服務器中,或者要實現本地和服務器的文件同步。FTP 文件傳輸協(xié)議是大家都熟知的實現方案,今天給大家介紹一個很好用的工具 rsync

          rsync

          rsyncremote sync 的含義,表示遠程同步,當時我們也可以同步兩個本地的文件夾,此時命令的效果類型 cp 命令。

          不過與其他文件傳輸工具(如 FTPscp)不同,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 效果如下,會將 source1source2 兩個文件夾都同步到 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_rsaid_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)惠充值話費,流量,視頻會員等。

          瀏覽 86
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一区二区三区无码流出 | 韩国三级在线视频 | 极品美女口交赤裸口交赤 | 日本久久直播 | 五月丁香福利 |