使用rsynch、SSH以及cron為Linux建立簡單備份方案

來源:互聯網
上載者:User

【TechTarget中國原創】

大公司通常有完善的備份策略。而在中小型公司,往往在真正需要的時候,卻發現用於備份的磁帶上面什麼也沒有。為了避免這種情況,這篇文章就如何為Linux建立一個簡單的備份解決方案進行了示範。

  本文描述的解決方案可用於兩個方面:將資料檔案的備份從工作站電腦寫到一個中央Linux伺服器,或者將備份從一台伺服器寫到另一台伺服器。如果將該方案應用到您網路中的所有伺服器上,可以提供給您一個廉價而高效的公司備份戰略,該戰略在中小型的公司中都能很好的工作。

       大公司通常有完善的備份策略。而在中小型公司,往往在真正需要的時候,卻發現用於備份的磁帶上面什麼也沒有。為了避免這種情況,這篇文章就如何為Linux建立一個簡單的備份解決方案進行了示範。

  本文描述的解決方案可用於兩個方面:將資料檔案的備份從工作站電腦寫到一個中央Linux伺服器,或者將備份從一台伺服器寫到另一台伺服器。如果將該方案應用到您網路中的所有伺服器上,可以提供給您一個廉價而高效的公司備份戰略,該戰略在中小型的公司中都能很好的工作。

  Linux系統需求

  為了實現這個備份程式,需要準備一個外部磁碟機。您可以將備份寫到一個外部USB磁碟,但這樣做效率不高。因此,我假設您將備份寫到位於網路某處的伺服器中。這台伺服器要為帶有SSH和rsync的一台Linux伺服器(任何Linux發行版都可以)。

  除了一個備份介質,您還需要rsync。這個多用途的同步工具是所有Linux發行版上的一個預設組件。正如其名稱所示,它會協助您進行檔案的遠程同步。但是,它不執行增量或者差異備份。為了防止本地硬體磁碟機崩潰,而想將資料存到別處時,這個工具就可以發揮作用。您也可以調整備份步驟,去進行增量和差異備份,但這不是本文的目的。

  現在,就很容易對我們備份方案的基本內容進行理解了。Rsync需要與遠程伺服器進行通訊並將資料寫入該伺服器。Rsync實現這一點所採用的預設機制是SSH。您可以不這麼做,但是幾乎在所有的Linux機器上,SSH都可用,所以您可以正好使用這個工具。下面的命令給出了rsync命令的一個例子:

  rsync -rau --progress /data 192.168.1.98:/data

  通過這個命令,rsync開始對本地目錄/data和伺服器192.168.1.98上目錄/data上的內容進行同步。到伺服器的串連是通過目前使用者賬戶來建立的。這意味著,如果您是本地工作站上一個叫linda的使用者,那麼您就會以linda這個賬戶來串連遠程機器。而如果您是root使用者,那麼您就會作為root使用者進行串連。不過要確保您有足夠的許可權去讀來源目錄的內容,並對伺服器上的目標目錄進行寫入。其次,rsync命令使用了一些參數。--progress參數會顯示rsync命令的進度,-rau參數會確保對一切的同步,包括檔案裡的中繼資料。

  在發出該命令之後,您本地目錄/data裡面的內容會跟伺服器上/data目錄的內容進行同步。但是,這個命令的缺點是您必須進行手動輸入,而手動輸入則意味著您可能會忘記。所以我們需要通過建立一個cron任務來讓其自動工作。cron的問題在於建立與伺服器的串連,已經串連到了伺服器上的SSH守護進程,而該進程會要求提供一個密碼。可選的解決辦法之一,是使用公私密金鑰對SSH進行配置來讓過程自動化。

  配置自動SSH登入

  使用公/私密金鑰的思路是,在您的工作站上,建立一個金鑰組,一個公開金鑰和一個私密金鑰。接下來,將公開金鑰拷貝到伺服器的~/.ssh/authorized_keys檔案中(~指的是目前使用者的主目錄)。下次,當您在工作站上啟動一個SSH命令時,它會首先自動嘗試通過您的公或私密金鑰對進行串連。工作站使用私密金鑰產生一個加密包,如果伺服器可以進行解密,工作站就可以100%的確認您的身份,而您就可以不輸入密碼而得到認證。要建立此配置,應該執行以下過程:

  1. 在工作站上,使用ssh-keygen –t dsa命令,並只按Enter,以接受所有的預設回答。這樣,系統會產生一個名為~/.ssh/id_dsa的檔案,該檔案為您的私密金鑰,以及一個~/.ssh/id_dsa.pub檔案,作為您的公開金鑰。
  2. 現在,使用ssh-copy-id命令將公開金鑰拷貝到您伺服器的主目錄中。下面的命令會協助您實現這個目的:

  ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.1.98

  通過使用這個命令,在伺服器上建立了一個.ssh/authorized_keys檔案,並允許您通過公/私密金鑰對進行登陸。

  在執行這些步驟之後,您現在可以通過下列的命令登陸到遠程伺服器:

  ssh 192.168.1.98

  可以看到,現在您能不輸入密碼就進行登陸了。

  使用cron安排備份計劃

  現在,您知道您必須要使用什麼命令,SSH也已經被設定好,以讓您自動登入,您需要告訴電腦每天都去自動同步資料。為了協助您做到這一點,可以在您的工作站上使用cron,該工具是另外一個在所有的Linux發行版中都使用的預設組件。為了給您的當前賬戶建立一個cron任務,您可以使用crontab –e命令。開啟vi或者joe這樣的crontab編輯器。在編輯器中,輸入下列命令:

  0 10 * * * rsync -rau /data 192.168.1.98:/data

  正如您所看到的,在crontab檔案中,輸入的命令與我們之前使用過的rsync命令是一樣的。唯一的不同是:--progress參數被省略了。因為cron是作為一個背景任務來啟動並執行,沒有串連到電腦上的任何終端,所以沒法向您展示進度。

  在實際的命令運行之前,您需要告訴cron什麼時候去執行該命令。為了做到這一點,在例子命令列裡,我使用了0 10 ***。在cron中,當一個任務需要去執行時,會使用5個位置去指示時間。通過使用上面的命令,會在每天的上午10運行該任務。切記,在第1個位置使用0去指定任務要啟動並執行確切分鐘數。如果忘了,從10:00到10:59,該任務會一直在運行。

  到這裡,我們已經對如何去建立一個基本但有效備份程式進行了全部的介紹。雖然還有許多其它的解決方案,但本文介紹的方案是其中少有的幾個簡單而有效方案之一。而且相對於一人公司和家庭使用者最普遍的備份程式:完全沒有備份而言,它永遠是更有效。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.