免費自動備份服務器網站數據?我選擇Github和Coding

原文章以及腳本下載 >>點擊這裏查看<<

前言

自從搭了這個小站,雖然沒幾個人來看,但還是要堅持把日常筆記更新下來。目前用國內的服務器,耐不住會有一些不合邏輯的吐槽,還有一些國際化技術的分享,以後大概率把小站遷到國外。但是看不少使用國外服務器翻車的,網站數據說沒就沒,於是提前早早的研究下網站源文件備份數據庫備份

目前主要有三種主流方法:

  • 手動備份

  • wordpress 插件備份

  • 寶塔備份

博主使用第一種方法,簡單粗暴,重要的是免費。有人覺得手動備份很麻煩,本文帶你簡要分析下三種方法:

最簡單的一種是寶塔備份,在 計劃任務 - 任務類型 分別添加 備份網站備份數據庫 兩個任務,在日誌中可以查看。不過,備份是直接保存到服務器中。若服務器崩了,那數據還是丟了。所以,此時出現了收費的存儲空間,比如阿里雲OSS、騰訊雲COS、七牛雲、又拍雲等等。只需要在 軟件管理 中下載各自的插件,配置完就可以選擇備份到第三方存儲空間。不過,本文暫時不做這方面的介紹。目前,巨硬家的服務免費而且可靠,而且每次只備份新增過的文件,更加方便快捷。

wordpress 插件備份只適合使用wordpress搭建的網站,大部分插件懟備份數據的大小有限制,超過就收費。

手動備份是本文重點介紹方法,使用腳本定時自動備份,備份空間選擇Github/Coding/Gitee私人倉庫,免費空間大小爲1G/2G/2G,足夠使用了。

配置 SSH 公鑰

這裏只介紹 Github 和 Coding 兩種方法,其他的按各自文檔使用。

Github

生成公鑰

在服務器的根目錄生成密鑰:

ssh-keygen -t rsa -C "[email protected]"( 您的郵箱)

添加公鑰

cat ~/.ssh/id_rsa.pub 複製全部內容,粘貼到 GitHub Settings” - SSH and GPG Keys - New SSH key

Coding

生成公鑰

在服務器的根目錄生成密鑰:

ssh-keygen -m PEM -t rsa -b 4096 -C "[email protected]"( 您的郵箱)

添加公鑰

cat ~/.ssh/id_rsa.pub 複製全部內容,粘貼到 Coding 右上角 - 個人設置 - SSH 公鑰 - 新增公鑰

新建遠程倉庫

正常新建 repository

唯一需要注意的是一定要選 Private ,不然其他人 git clone 一下,把你的網站全部偷走了。

在下面配置服務器倉庫時,需要使用 SSH 把要服務器中要備份數據的目錄與新建倉庫關聯起來:

Github:Clone or download - Use HTTPS

Coding:代碼倉庫 - 設置 - 倉庫設置 - 倉庫名稱 - SSH

配置服務器倉庫

爲了方便,我使用了寶塔管理站點,所以我的服務器要綁定遠程倉庫的目錄爲 /www/wwwroot/網站目錄 。沒使用寶塔的服務器網站目錄應該在 /www/網站目錄

cd /www/wwwroot/網站目錄
# 初始化倉庫
git init
# 這裏二選一,填入分配給你的SSH地址
# 關聯到遠程 Github 倉庫
git remote add origin [email protected]:***
# 關聯到遠程 Coding 倉庫
[email protected]:***

自動備份腳本

sudo vim ~/backupWebsite.sh

寫入:

#!/bin/bash
# 要備份的網站目錄
path = /www/wwwroot/你的網站目錄
# 數據庫名稱
SQLName = myWebSiteDB
# 登錄數據庫的用戶名
USERName = root
# 用戶密碼
USERPasswd = ******
#進入到網站根目錄,記得修改爲自己的站點
cd $path
# 導出數據庫並壓縮
mysqldump -u$USERName -p$USERPasswd $SQLName | gizp > $SQLName.sql
# 將網站文件和數據庫文件同步到Github
git add -A
git commit -m "backupsite"
git push -u origin master
# 上傳後刪除sql文件
rm -f $SQLName

測試一下:

bash ~/backupWebsite.sh

刷新一下 Github/Gitee/Coding 倉庫,此刻應該已經上傳了網站和數據庫的所有數據。

注:第一次推送到遠程倉庫可能提示你配置郵箱和用戶名, 按提示操作即可。

git config --global user.email “your email”

git config --global user.name “your name”

腳本下載見首行。

設置定時任務

設置每天凌晨一點半執行一次更新,這個時候服務器壓力比較小:

echo "30 01 * * * bash ~/gitback.sh > ~/backupWebsite.log 2>&1 &" > buw.cron
crontab buw.cron
rm -rf buw.cron

使用 crontab -l 命令查看是否設置成功。

參考

Coding配置SSH

Linux VPS定時備份服務器/網站數據到Github私人倉庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章