Utility - 使用 WebSiteBackupTools 備份網站

前言及緣由

找了好一陣子,一直沒能弄到自己喜歡&順手的網站備份工具,想一想自己想要的需求應該不會太難,主要應該要有以下需求:

  1. 使用設定檔方便一台主機上有多個網站需要進行不同的備份
  2. 備份的內容包含檔案及資料庫
  3. 備份檔案上傳 Dropbox
  4. 只保留一週的備份檔

但,一直沒能找到自己順手的…於是,就自己動手了一個基本符合自己需求的工具 - WebSiteBackupTools , 這個工具使用了 Dropbox-Uploader 這個 Dropbox Uploader is a BASH script 也不用再自己額外寫 Dropbox API 的功能,且持續的更新中,不致於發生功能壞掉沒能修的問題。

以下就繼續說明該如何使用囉!

一、下載

1
wget https://github.com/mouson/WebSiteBackupTools/releases/download/v0.1/WebSiteBackupTools.zip
  • clone source file
1
2
3
git clone https://github.com/mouson/WebSiteBackupTools.git
cd /root/WebSiteBackupTools
git submodule update --init

二、環境設定

1
2
3
cd /root/WebSiteBackupTools
cp Config/config.sh.sample Config/config.sh
vim Config/config.sh

其中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
# 備份的名稱
backup_name='BackupName'

# 設定後網站檔案資料備份檔名為:BackupName_web_YYYY-MM-DD.sql.bz2
# 設定後網站檔案資料備份檔名為:BackupName_db_YYYY-MM-DD.sql.bz2

# Path Setting
# 備份資料夾的路徑
website_folder='/var/www/website'
# 備份工作處理期間,相關檔案的暫存路徑
working_folder='/home/username/working'
# 上傳到 Dropbox 的什麼資料夾名稱
dropbox_folder='backup'
# 備份資料夾中需要排除什麼資料夾
exclude='wp-content/cache/*'

# MySQL information: replace it with your own
# 資料庫位置
hostname='localhost'
# 資料庫使用帳號
username='user'
# 帳號使用的密碼
password='password'
# 資料庫名稱
database='daname'

三、實際操作

執行以下指令:

1
sh /root/WebSiteBackupTools/Scripts/Backup2Dropbox.sh config.sh

當你有多組網站需要備份,也可以這樣使用

1
2
sh /root/WebSiteBackupTools/Scripts/Backup2Dropbox.sh website1_config.sh
sh /root/WebSiteBackupTools/Scripts/Backup2Dropbox.sh website2_config.sh

如果需要設定 cronjob 排程,也可以進行以下設定:

1
crontab -e
1
2
0 2 * * * sh /root/WebSiteBackupTools/Scripts/Backup2Dropbox.sh website1_config.sh > /dev/null 2>&1
10 2 * * * sh /root/WebSiteBackupTools/Scripts/Backup2Dropbox.sh website2_config.sh > /dev/null 2>&1

四、結語

這份工具目前還不是我心目中最完美的備份工具,但堪用,之後會持續的更新它,讓它變成我最愛的工具。生日的這天,完成這小工具,還蠻有意思的。

有任何需求會任何 bug 也歡迎回報。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器