使用rsync自動將檔案備份到遠端伺服器

使用rsync備份是自我管理本地檔案的一種強大方法。這是你需要知道的一切。...

是否擔心丟失資料,或者厭倦了每天或每週執行手動備份?使用rsync命令,無需手動干預即可根據需要將本地檔案自動同步到遠端伺服器。請注意,本指南確實需要訪問遠端Linux伺服器(如AWS),並且是在Ubuntu20.04下編寫的,儘管任何Linux發行版都可以正常工作。

Network Box

安裝rsync

在進行任何操作之前,請檢查是否安裝了rsync。在本地PC和web伺服器上執行以下命令:

rsync --version

如果您得到當前rsync版本作為回報,那麼您就可以進入下一節了。否則,如果收到“未找到命令”錯誤,可以使用以下命令安裝rsync:

sudo apt-get -y install rsync

生成ssh金鑰

我們將使用SSH金鑰來驗證本地PC和遠端伺服器之間的連線。要在終端內的本地PC上生成新的SSH金鑰,請執行以下命令:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key

當提示輸入密碼時,將其留空並按兩次Enter鍵。這將在~/.ssh/目錄中生成兩個名為同步金鑰哪個是私鑰rsync.key.pub,公鑰。

安裝遠端伺服器

儘管不是必需的,但對於本指南,我們將在遠端伺服器上建立一個新使用者,用於rsync連線和儲存所有備份檔案。透過SSH登入到遠端伺服器並執行以下命令:

sudo useradd -m rsync

上面的示例使用使用者名稱rsync,但是您可以將其更改為任何您想要的內容。m選項只是告訴Linux為新使用者建立一個主目錄。

要允許本地PC進行身份驗證,需要將上一節中生成的公共SSH金鑰複製到遠端伺服器。開啟/~.ssh/rsync.key.pub在一個文字編輯器檔案,你會看到一個大行,看起來像。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNhyYKsjcGGdXmzOM3742+c+TzMLFdZtrMPj1q6JWNWzgY/gTGVy1C72kw6BcTYSG8B8kLQlaBRl16m2Gm8Ra/U1wl0TYSufOnRKjGq2glnBPysWNzR6i9qd4h/byKa4ptNH/ieYkT+BnSJVo8fT0iboYwEaL9D0jPtYxFzZes2ctsGZ/zi78VlX9N224YBtoZcrxK6gzKtcIVrplsXt4MbMCPc0hfr9f2VMt0HignLphTDLQWKwF3sGi4OHDPzNTRkjyHazsIOFIKDLQgdsIJv7b2VMs028YDqPnXHZZl4Ix5vg8ssqE+s/J+rzS0B6gwj2b/f6vJMI9DmTk8SO5LKWtSl4lXjLpQ1eP+xjf3SeMFWWkk2tPpGBo6d+8VJT6htj9Ga927qx3bYJ3FDdqjoE/28yBzMsg3wKI8lobiQGIbF0B0jZmSeq42ds7dh76iU/LOraWJWJhKPIjCYHdaVqj5rgxSulUW6oqr/LOxMNwsj5NLpyKygr5/RVjCUpxQLw5G7AClmW5nOZDFUgtI1CAOzhG8oYQes7jE7ZbQKmMf9IGquNV1BCRGX2mbcYad77UE2IjzPqSG8pFGb7ekZA6ukUk61fqoheL4Zl2jmhhWoXQ09LZE9FNfr1UwIoZ+GwUcip8NPIZPSo+Z4yMB/5VNF7J0o76eTNwh0gZlEw== user@host

這條長線是公共SSH金鑰。將其複製到剪貼簿,然後在遠端伺服器中執行以下命令:

sudo su rsync mkdir -m 0700 $HOME/.ssh echo "ssh-rsa AAAAB... user@host" > $HOME/.ssh/authorized_keys chmod 0644 $HOME/.ssh/authorized_keys

在最後的第二個命令中,用長的公共SSH金鑰行替換引號之間的文字。就這樣,您的本地PC現在可以透過您的遠端伺服器進行身份驗證。

配置ssh配置檔案

為了簡單起見,請在本地PC上的~/.ssh/config檔案中新增一個條目,以便輕鬆連線到遠端伺服器。用命令開啟本地PC上的檔案。

nano $HOME/.ssh/config

在檔案中為遠端伺服器新增一個條目,例如:

host backup_server hostname 192.168.0.24 user rsync IdentityFile ~/.ssh/rsync

將主機名更改為遠端伺服器的IP地址,如果您使用的使用者名稱不是“rsync”,也可以更改該名稱。您可以為主機使用任何您想要的東西,但是在本例中使用了“backup\u server”。按Ctrl+X,然後按“Y”和Enter鍵儲存並關閉檔案。

使用命令測試到遠端伺服器的SSH連線。

ssh backup_server

假設所有設定都正確,現在應該透過SSH登入到遠端伺服器。關閉與命令的連線。

exit

同步你的檔案

現在測試rsync功能,例如,要同步本地PC上的文件目錄,請執行以下命令:

rsync -avz --progress ~/Documents/ backup_server:~/Documents

第一個出現的~/Documents/指定要同步的本地檔案或目錄,backup\u server與新增到~/.ssh/config檔案的條目相對應,結尾:~/Documents只是指定將所有內容上載到相對於主目錄的遠端伺服器的/Documents目錄中。

登入到遠端伺服器,您將看到一個與本地PC同步的新文件目錄。每次執行上述命令時,將只上載自上次以來修改過的檔案,因此您不會不斷上載該目錄的全部內容。

透過crontab自動化

現在一切都已測試並正常工作,我們可以透過向本地PC新增crontab作業輕鬆地自動化整個過程。要每15分鐘自動將本地資料夾同步到遠端伺服器,請在終端內執行命令。

(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab

您可能會收到一條“no crontab for user”訊息,您可以忽略它。將Documents目錄更改為要備份的任何目錄,但請確保為目錄留下一個斜槓,否則它們將無**確備份。

檢查以確保crontab作業已透過命令成功新增。

crontab -l

如果您看到剛剛新增的crontab作業,那麼一切都準備就緒。等待15分鐘,檢查您的遠端伺服器,所有必要的檔案都應該在那裡。從現在開始,對檔案所做的所有更改將每隔15分鐘自動上載到遠端伺服器。

從遠端伺服器下載

您也可以使用rsync從遠端伺服器下載檔案並將其同步到本地PC。使用上面的/Documents目錄示例,在終端中執行以下命令:

rsync -chavzP backup_server:~/Documents/ ~/Documents

本地PC上的~./Documents目錄現在應該是遠端伺服器的映象。

包含和排除模式

如果您只需要同步與特定模式匹配的檔案,例如end with.html,您可以使用--include模式。在終端中執行命令。

rsync -avz --include "*.html" --progress ~/mysite/ backup_server:~/public_html

檢查遠端伺服器,您將看到只有本地/mysite/目錄中副檔名為.html的檔案已上載到/public\u html/remote目錄中。同樣,您還可以使用--exclude選項同步除某些檔案以外的所有檔案。例如,以下命令將同步除副檔名為.txt的檔案以外的所有檔案。

rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html

同步兩個本地目錄

如果需要,還可以使用命令同步兩個本地目錄。

rsync -zvr ~/source/directory ~/destination/directory

此命令的工作原理與同步到遠端伺服器時完全相同,唯一的區別是它有兩個本地目錄。

放鬆

您現在可以鬆一口氣了,因為您知道資料丟失的機率現在大大降低了。在本文中,您瞭解了rsync是什麼,如何生成和安裝SSH金鑰,如何在~./.SSH/config檔案中定義伺服器,如何同步本地和遠端目錄,以及如何透過crontab自動化整個過程。今後,所有必需的檔案將始終與遠端伺服器同步,只需15分鐘的延遲。

  • 發表於 2021-03-28 09:36
  • 閱讀 ( 53 )
  • 分類:電腦

你可能感興趣的文章

如何使用windows 10檔案歷史記錄備份(outlook)電子郵件

你應該隨時備份電腦上的資料。如果您使用Outlook來管理電子郵件,那麼您也需要備份這些資訊。如果你不這樣做,你可能會失去你的電子郵件,聯絡人,任務,等等。 ...

  • 發佈於 2021-03-12 05:06
  • 閲讀 ( 45 )

googledrive與onedrive:在哪裡備份windows檔案

...檔案的兩個副本(一個在您的計算機上,一個在OneDrive的伺服器上)保留在OneDrive的伺服器上,而不是保留在您的計算機上,同時仍然可以根據需要訪問它們。 ...

  • 發佈於 2021-03-12 11:58
  • 閲讀 ( 55 )

使用rsync備份資料(無需桌面)

...來說,這意味著rsync消除了手動備份帶來的許多不便。與使用Linux終端固有的檔案操作命令相比,這將導致更無縫的備份過程。 ...

  • 發佈於 2021-03-16 12:17
  • 閲讀 ( 49 )

如何使用crontab自動化linux中的重複任務

... crontab的許多優秀用途之一是能夠自動將檔案備份到遠端伺服器。透過這個優秀的rsync教程,您可以大大降低再次丟失重要資料的風險。 ...

  • 發佈於 2021-03-28 04:45
  • 閲讀 ( 55 )

linux下如何使用rclone備份google驅動

...rive仍然沒有正式的Linux客戶端,但是您可以直接從命令列使用rclone實用程式備份到googledrive。我們教你怎麼做。 linux上的google drive在哪裡? 儘管2012年承諾Linux支援“很快就會到來”,但沒有跡象表明Google會為GoogleDrive生產一個...

  • 發佈於 2021-04-02 18:51
  • 閲讀 ( 50 )

如何備份linux系統

...料丟失的風險。從Linux命令列備份有價值的資料。我們將使用rsync命令來實現這一點,我們甚至為它找到了一些不錯的可選圖形介面。 有很多方法可以實現備份檔案。我們想向您展示一種健壯、靈活、可靠的方法來保護您的資料...

  • 發佈於 2021-04-03 09:19
  • 閲讀 ( 75 )

最好的線上備份服務是什麼?

...語來加密備份。這意味著即使Backblaze員工也無法在他們的伺服器上看到您的資料。 當然,您可以登入Backslaze帳戶並透過Internet下載備份,但如果備份了大量資料,則可能需要大量時間。為了幫助您實現這一點,Backblaze還提供了一...

  • 發佈於 2021-04-06 14:22
  • 閲讀 ( 57 )

您應該在windows pc上備份哪些檔案?

...份到外部驅動器,到透過Internet將資料的副本上載到遠端伺服器。您可以使用整合到Windows中的工具或下載第三方備份工具。選擇最適合您的備份解決方案我們在這裡討論一些我們最喜歡的解決方案。 我們還建議使用多種型別的...

  • 發佈於 2021-04-07 07:42
  • 閲讀 ( 62 )

備份我的電腦最好的方法是什麼?

...料的方法有很多,從使用外部驅動器到透過Internet在遠端伺服器上備份這些檔案。以下是每種方法的優缺點: 備份到外部驅動器:如果您有一個外部USB硬碟驅動器,您可以使用計算機的內建備份功能備份到該驅動器。在Windows 10...

  • 發佈於 2021-04-07 08:26
  • 閲讀 ( 60 )

如何備份和恢復synology nas配置

...的任何預設檔案共享工具(包括Windows檔案服務、Mac檔案伺服器、NFS服務、FTP、WebDAV和rsync)都將備份其設定。備份服務本身的設定也會備份,但備份僅包括實際的服務設定,而不包括有關任務的儲存資訊,如上次成功備份的日期...

  • 發佈於 2021-04-07 11:55
  • 閲讀 ( 47 )
yoy42660
yoy42660

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦