本週早些時候,在一家名為Cornerhost的服務上託管網站的網站所有者受到了很大的驚嚇:該服務似乎將在未經通知的情況下關閉,而他們的所有者卻無處可尋。很可怕吧?除非你定期備份你的網站。下麵介紹如何為您的網站設定自動備份,以便在最壞的情況發生時,您的資料可以安全地儲存在您的手中。
如果你為了執行任何一種基於網路的應用程式而付費,從你的WordPress部落格到名牌網站,再到檔案共享服務,再到社交媒體資料檔案,你需要像備份電腦資料一樣備份你的網路伺服器的資料。在資料庫驅動的網站上,有兩種資料需要儲存和恢復,以防發生災難:組成網站的檔案(PHP/Perl/Python、JavaScript、CSS檔案等)和資料庫的內容。此外,任何好的備份系統都應該對備份資料進行本地複製和遠端複製。
我運行了幾個資料庫驅動的網站和應用程式,包括這個部落格,所以我的備份系統必須是可靠的。我是這樣安排的。
此方法假設了以下幾點:
所有系統都正常嗎?讓我們把你的備份系統設定好。
第一:本地備份
為了備份網站,指令碼必須備份兩件事:組成網站的所有檔案和資料庫中的所有資料。在這個方案中,您沒有備份PHP或PERL指令碼生成的HTML頁面;您正在備份PHP或PERL原始碼本身,它訪問資料庫中的資料。這樣,如果你的網站崩潰了,你可以在一個新的主機上恢復它,一切都會像現在這樣工作。
首先,將SSH放到web伺服器中,併在主目錄中建立一個名為backups的資料夾。在此資料夾中,建立一個名為backup.sh的檔案。然後,建立一個資料夾名檔案。
結果如下:
your_home_directory/ | + - backups/ | + - backup.sh | + - files/我們現在關心的檔案是backup.sh。這個檔案將是一個指令碼,它可以將資料壓縮並儲存在檔案中。
我執行的指令碼很大程度上基於我在How-To-Geek的wiki上找到的一個示例。下麵是backup.sh的原始碼,它負責處理**arterware.org的檔案和資料庫:
#!/bin/sh THESITE="**arterware.org" THEDB="my_database_name" THEDBUSER="my_database_user" THEDBPW="my_database_password" THEDATE=`date +%d%m%y%H%M` mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > /var/www/vhosts/$THESITE/backups/files/dbbackup_${THEDB}_${THEDATE}.bak.gz tar czf /var/www/vhosts/$THESITE/backups/files/sitebackup_${THESITE}_${THEDATE}.tar -C / var/www/vhosts/$THESITE/httpdocs gzip /var/www/vhosts/$THESITE/backups/files/sitebackup_${THESITE}_${THEDATE}.tar find /var/www/vhosts/$THESITE/backups/files/site* -mtime +5 -exec rm {} \; find /var/www/vhosts/$THESITE/backups/files/db* -mtime +5 -exec rm {} \;將此原始碼複製並貼上到backup.sh檔案中。要在類似於我的設定(從第3行到第7行)中成功執行此指令碼,必須將**arterware.org、my\u database\u name、my\u database\u user和my\u database\u password替換為網站的正確值。
這個版本的指令碼對檔案位置做了兩個假設。在我的web伺服器(以及許多,但不是所有的設定)上,我的主目錄是這樣的路徑:/var/www/vhosts/example.com/(example.com是您的網站域)。所有可透過web訪問的公共檔案都位於/var/www/vhosts/example.com/httpdocs/(example.com是您的網站域)。
您的網站檔案路徑可能不同。如果是這樣,請在指令碼的原始碼中,將/var/www/vhosts/$THESITE/backups/替換為備份資料夾位置的路徑,並將/var/www/vhosts/$THESITE/httpdocs/替換為站點可透過web訪問的檔案的位置。
讓我們看看這個指令碼在做什麼。在第3行到第7行中設定了一些變數之後,第9行正在執行第4行中命名的資料庫中所有資料的mysqldump,將其存檔,並使用類似dbbackup\u example.com\u 1402120101.bak.gz.tar的檔名將其儲存在files目錄中。第11行和第12行將站點的原始碼檔案歸檔到httpdocs目錄中,並使用類似sitebackup\u example.com\u 1402120101.tar的檔名將它們儲存在files目錄中。請註意,這兩個檔名都包含日期,因此您可以看到備份的時間。
最後,第14行和第15行將刪除5天前所做的任何備份。你每晚都要執行這個備份指令碼,檔案很快就會佔用很多空間。這就是最後這些命令刪除舊備份的原因。您可以將數字5更改為要保留備份的任何天數。
要執行此指令碼,必須chmod+x backup.sh。手動執行它以確保它生成您所期望的備份檔案。最後,安排它在crontab中按您喜歡的頻率執行。要在每天凌晨1:01執行它,您的crontab將如下所示:
1 1 * * * /var/www/vhosts/example.com/backups/backup.sh確保為您關心的每個網站和資料庫執行此指令碼。
當您在床上酣睡時,此備份指令碼運行了幾個晚上後,您的檔案目錄將充滿至少5天的檔案和資料庫內容備份。幹得好。
但你還沒做完。
下一步:遠端備份
如果WordPress更新出錯或者你不小心從資料庫中刪除了一篇部落格文章,那麼在你的web伺服器上進行備份將節省你的時間。但是,如果您的web伺服器無法訪問或在火災中死亡,這將毫無幫助。這就是為什麼要將此資料的副本自動傳送到遠端伺服器的原因。
一旦你因為一個慷慨的朋友或在家裡而訪問了一個遠端伺服器,你就要建立一個rsync作業,它會將你的web伺服器的所有備份轉移到它上面,以防發生完全的災難。幾年前,我用rsync在系統間運行了映象檔案的方法,所以我不再重覆它,但在這裡您將使用相同的方法。
簡而言之,在遠端伺服器上,建立一個名為offsitebackups的資料夾。要將新網站備份檔案rsync到遠端主機,請使用SSH連線到該主機,然後cron一個類似以下內容的作業:
rsync -e ssh -a —delete [email protected]:/var/www/vhosts/example.com/backups/files/ /your/path/to/offsitebackups/用您的資訊替換使用者名稱、網站名和路徑。
該命令將把主機備份資料夾中的所有檔案同步到遠端伺服器的offsitebackups資料夾。執行它以確保它工作。當您登入到web伺服器時,它會提示您輸入密碼。同步完成後,您應該可以在offsitebackups資料夾中看到備份檔案。
問題是,當cron試圖執行密碼時,你不會每天晚上都在附近輸入密碼。要在沒有幹預的情況下執行它,您需要在web伺服器上設定無密碼登入。這篇關於使用rsync自動備份的優秀教程也包含了這些步驟。
設定web伺服器的本地和遠端、資料庫和檔案備份需要前期的時間和精力,但一旦設定好了,就可以忘記了。使用此係統,您可以寫部落格,更新您的部落格軟體,並直接在web伺服器上手動編輯檔案,而無需擔心丟失更改或無法再次恢複資料。
每晚自動備份網站
想看看你的作品嗎?傳送電子郵件至submissi***@tl80.com!
...“選項”可更改安全PST備份執行的幾種方式。您可以更改自動備份計劃,也可以將其完全關閉。大多數其他設定對您來說都沒有用處,因為它們是供企業使用的。 ...
...9美元或每年49.99美元)。這可以讓你安裝和使用它的桌面自動上傳工具。它還承諾提供無廣告的瀏覽體驗,併為您提供照片的高階統計資訊,包括哪些照片是當前流行的,以及是什麼驅使人們瀏覽您的照片。 ...
...向他們展示一個網站,或者在上下班途中檢視資源。當你備份網站,你可以做所有這一切和更多。 ...
...失去對重要文件的訪問許可權。一旦啟用,資料夾保護將自動備份重要資料夾。那些是桌面、文件和圖片。 ...
... 備份磁碟本身以及任何其他外部驅動器都會自動排除。排除項列表適用於新增到Time Machine的所有備份磁碟(我們將在下一節討論設定多個備份磁碟)。 ...
...考慮使用它仍然是一個很好的選擇。使用Dropbox,您可以自動或手動備份iPhone照片。 ...
...只需輕觸主頁上的“立即備份”。 請記住,googleone不會自動備份任何透過****商簡訊應用傳送的媒體。您必須手動將任何連線的媒體儲存到Google Photos,如果啟用“Photos and Videos”備份選項,Google Photos會自動備份。 但是,如果您...
...即使是免費版本。 相關:設定CCleaner在windows7、Vista或XP中每晚自動執行 磁碟碎片整理已經自動化(如果需要) 如果你使用電腦的時間夠長,你可能已經養成了整理硬碟的習慣。好訊息是,這是你真的不需要擔心太多了。 首先,...
...Android、iOS)並使用您的谷歌ID登入即可。從那時起,它會自動將您的所有照片備份到雲中,並透過應用程式。你也可以在網站上找到圖片.google.com. 如果您是Google Drive使用者,您的所有照片也會顯示在Google Drive的Google photos資料夾...