每晚自動備份網站

本週早些時候,在一家名為Cornerhost的服務上託管網站的網站所有者受到了很大的驚嚇:該服務似乎將在未經通知的情況下關閉,而他們的所有者卻無處可尋。很可怕吧?除非你定期備份你的網站。下麵介紹如何為您的網站設定自動備份,以便在最壞的情況發生時,您的資料可以安全地儲存在您的手中。...
Illustration for article titled Automatically Back Up Your Web Site Every Night

本週早些時候,在一家名為Cornerhost的服務上託管網站的網站所有者受到了很大的驚嚇:該服務似乎將在未經通知的情況下關閉,而他們的所有者卻無處可尋。很可怕吧?除非你定期備份你的網站。下麵介紹如何為您的網站設定自動備份,以便在最壞的情況發生時,您的資料可以安全地儲存在您的手中。

如果你為了執行任何一種基於網路的應用程式而付費,從你的WordPress部落格到名牌網站,再到檔案共享服務,再到社交媒體資料檔案,你需要像備份電腦資料一樣備份你的網路伺服器的資料。在資料庫驅動的網站上,有兩種資料需要儲存和恢復,以防發生災難:組成網站的檔案(PHP/Perl/Python、JavaScript、CSS檔案等)和資料庫的內容。此外,任何好的備份系統都應該對備份資料進行本地複製和遠端複製。

我運行了幾個資料庫驅動的網站和應用程式,包括這個部落格,所以我的備份系統必須是可靠的。我是這樣安排的。

此方法假設了以下幾點:

  • 您正在執行一個基於LAMP的網站(Linux、Apache、MySQL和PHP/Perl/Python)。
  • 您可以透過SSH對web伺服器進行命令列訪問。
  • 您知道如何建立新資料夾和檔案的chmod許可權。
  • 您可以在伺服器的命令列上執行bash指令碼並設定cron作業。
  • 您知道您的web伺服器的所有檔案都儲存在哪裡,需要備份哪些資料庫,使用什麼使用者名稱和密碼登入MySQL。
  • 為了進行遠端資料備份,除了站點的伺服器之外,還需要透過SSH訪問另一個伺服器。我向我的一個朋友請求在他的伺服器上建立一個帳戶來儲存一些備份檔案,他很感激。如果你沒有一個朋友和另一臺主機上的伺服器在一起,你可以在家裡執行一個永遠線上的伺服器,然後備份到那裡。我不喜歡在家裡一直開著電腦,因為那裡的頻寬速度可能很慢,所以我建議找個朋友備份(你也可以給你的朋友提供同樣的禮遇)。

所有系統都正常嗎?讓我們把你的備份系統設定好。

第一:本地備份

為了備份網站,指令碼必須備份兩件事:組成網站的所有檔案和資料庫中的所有資料。在這個方案中,您沒有備份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!

  • 發表於 2021-05-27 01:40
  • 閱讀 ( 31 )
  • 分類:網際網路

你可能感興趣的文章

如何備份和恢復mac的itunes和照片庫

... 手動還是自動? ...

  • 發佈於 2021-03-13 09:05
  • 閲讀 ( 48 )

如何建立outlook資料的自動備份

...“選項”可更改安全PST備份執行的幾種方式。您可以更改自動備份計劃,也可以將其完全關閉。大多數其他設定對您來說都沒有用處,因為它們是供企業使用的。 ...

  • 發佈於 2021-03-15 01:59
  • 閲讀 ( 32 )

用這8個工具自動備份你的照片

...9美元或每年49.99美元)。這可以讓你安裝和使用它的桌面自動上傳工具。它還承諾提供無廣告的瀏覽體驗,併為您提供照片的高階統計資訊,包括哪些照片是當前流行的,以及是什麼驅使人們瀏覽您的照片。 ...

  • 發佈於 2021-03-15 05:26
  • 閲讀 ( 59 )

儲存和備份網站,以便使用httrack離線閱讀

...向他們展示一個網站,或者在上下班途中檢視資源。當你備份網站,你可以做所有這一切和更多。 ...

  • 發佈於 2021-03-15 16:31
  • 閲讀 ( 47 )

onedrive現在自動備份您的資料夾

...失去對重要文件的訪問許可權。一旦啟用,資料夾保護將自動備份重要資料夾。那些是桌面、文件和圖片。 ...

  • 發佈於 2021-03-24 01:09
  • 閲讀 ( 31 )

如何使用time machine備份mac

... 備份磁碟本身以及任何其他外部驅動器都會自動排除。排除項列表適用於新增到Time Machine的所有備份磁碟(我們將在下一節討論設定多個備份磁碟)。 ...

  • 發佈於 2021-03-24 06:16
  • 閲讀 ( 43 )

6個雲服務,讓您備份iphone照片

...考慮使用它仍然是一個很好的選擇。使用Dropbox,您可以自動或手動備份iPhone照片。 ...

  • 發佈於 2021-03-28 07:50
  • 閲讀 ( 55 )

如何使用googleone備份和恢復android

...只需輕觸主頁上的“立即備份”。 請記住,googleone不會自動備份任何透過****商簡訊應用傳送的媒體。您必須手動將任何連線的媒體儲存到Google Photos,如果啟用“Photos and Videos”備份選項,Google Photos會自動備份。 但是,如果您...

  • 發佈於 2021-04-02 15:49
  • 閲讀 ( 50 )

如何在Windows10中自動執行常見的維護任務

...即使是免費版本。 相關:設定CCleaner在windows7、Vista或XP中每晚自動執行 磁碟碎片整理已經自動化(如果需要) 如果你使用電腦的時間夠長,你可能已經養成了整理硬碟的習慣。好訊息是,這是你真的不需要擔心太多了。 首先,...

  • 發佈於 2021-04-05 05:39
  • 閲讀 ( 57 )

自動備份智慧手機上照片的最佳方法

...Android、iOS)並使用您的谷歌ID登入即可。從那時起,它會自動將您的所有照片備份到雲中,並透過應用程式。你也可以在網站上找到圖片.google.com. 如果您是Google Drive使用者,您的所有照片也會顯示在Google Drive的Google photos資料夾...

  • 發佈於 2021-04-06 11:46
  • 閲讀 ( 53 )
h671101
h671101

0 篇文章

作家榜

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

相關推薦