Linux

如何正確進行伺服器備份

  • May 6, 2015

因為我不是真正的伺服器管理員,但我總是渴望學習新東西。

我有一個專門的伺服器來照顧。該伺服器上有 2 個虛擬機,每個虛擬機上有一個站點(webapp)。

兩個虛擬機都只有 CentOS 7 CLI。我使用 SSH 通過物理伺服器連接。當我在那裡登錄時,我使用 ssh 連接到任何虛擬機。

我找到了一個 bash 腳本來 tar 和壓縮 /var/www 文件夾並將其上傳到 FTP 伺服器。這工作正常,但上傳的文件總是損壞。該腳本還對 mysql 數據庫進行解壓縮轉儲。該文件也已損壞。

所以,我的問題是:除了修復損壞文件的原因(備份本身或上傳或 FTP 伺服器)之外,這是一個好方法嗎?conf 文件(apache2、mysql、其他)怎麼樣?我可以簡單地將它們添加到備份常式中嗎?

我認為有一些更簡潔實用的工具/腳本可以做到這一點。我還嘗試了許多 web 管理員,例如 webmin、ajenti、centos webpanel。但我不喜歡在伺服器上使用 GUI。

TL;DR: 需要知道是否有將 /var/www、mysql 轉儲和其他文件(如 apache2 和 mDB conf)備份到 FTP、Dropbox、雲的好方法。

謝謝你的時間。對不起我的英語不好。

這是一種不錯的備份方法,具體取決於您的需要,但也有一些優點和缺點。

優點:

  • 易於創建和管理
  • 無需特殊軟體即可查看備份
  • 可以輕鬆備份您需要的一切

缺點:

  • 每天可能需要備份大量文件
  • 定期通過 FTP 複製備份的大型數據傳輸
  • 恢復崩潰系統的時間可能很長(重新安裝伺服器$$ packages, libraries, users $$,配置和編譯軟體(如Apache,PHP),恢復文件,使網站功能

也就是說,這是一種非常常見的方法,所以如果你能忍受利弊,那就去吧。**

FTP 損壞問題

我的猜測是 FTP 文件已損壞,因為它們不是以 BINARY 模式上傳,而是以 ASCII 模式傳輸。 另請注意,FTP 不安全,您的憑據和備份可能會被攔截。

未壓縮的 MySQL 轉儲

壓縮備份。備份需要更長的時間,但您可能會在複製中彌補時間。您可以使用以下命令實現此目的:

mysqldump -u root -pPASS --all-databases | gzip -9 > mysql.sql.gz

備份其他配置

是的,您可以簡單地將它們添加到備份中。如果您現在正在備份/var/www,請將您的命令修改為以下內容:

tar cf backup.tar mysql.sql.gz /var/www /etc/apache2/conf* /etc/my.cnf /var/spool/cron /etc/ssh

上面的範例備份了 /var/www、Apache 配置目錄、MySQL 配置文件、/var/spool/cron 中的使用者 crontabs 和 SSHD 配置。您可以根據需要將文件/目錄添加到列表中。

然後在備份完成後,將備份傳輸到遠端系統並將其刪除。

希望有幫助!


*如果您可以支持它或有可以備份的遠端系統,請查看rsync

您基本上可以編寫一個命令來備份所有文件/目錄,就像上面一樣,除了它們被安全地備份到遠端系統並且也更有效地傳輸。如果您有在備份之間未更改的文件,則不會複製它們。如果您有一個大文件(即日誌文件),則只複製更改的部分,從而節省大量數據傳輸。

備份系統需要可通過 SSH 訪問(使用密鑰或密碼)並安裝 rsync。然後,您可以更有效地管理您的備份。為了增加安全性,您可以在備份伺服器上備份文件並保留歷史記錄。

**根據您的主機作業系統,您可以查看一些可以對您的系統或虛擬機進行實時備份的塊級備份軟體,這些備份可用於對虛擬機進行裸機恢復。

引用自:https://serverfault.com/questions/690153