歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> linux下Vps自動備份web和mysql數據庫的腳本

linux下Vps自動備份web和mysql數據庫的腳本

日期:2017/3/2 16:31:54   编辑:Linux服務器
用Vps什麼事都要自己費心,備份也是。像Linode裡的備份服務是要收費的,一個月是5美元。與其花這5美元,不如自己豐衣足食。為服務安裝上了Dropbox,設定為每天4:00-6:00 開啟同步服務。在之前運行兩個腳本,自動備份web文件夾和mysql數據庫。
兩個腳本都是備份文件到/root/Dropbox/backup目錄裡,並自動刪除10天前的備份。web備份是每周行一次,刪除30天前的備份。

一、備份WEB文件夾

1、備份/home/users/public_html目錄
2、修改crontab為每周第一天3:22時運行
. 代碼如下:
22 3 * * 0 root run-parts /etc/cron.weekly

3、復制腳本到/etc/cron.weekly目錄
4、修改權限
. 代碼如下:
chmod 0755 /etc/cron.weekly/webbackup.sh

5、腳本如下
. 代碼如下:
#!/bin/sh
filename=`date +%Y%m%d`
backup_dir="/root/Dropbox/backup/web"
#delete all files 10 days ago
find $backup_dir -mtime +30 -name "*" -exec rm -rf {} \;
#each user you want backup
users="baidu sina"
for user in ${users}; do
tar zcvf $backup_dir/$user$filename.tar.gz /home/$user/public_html
done

6、注意filename那句不是單引號,在tab鍵上方
7、要備份的用戶的public_html目錄,就把該用戶填入users

二、Mysql數據庫每日備份

1、為了安全,新建用戶backup,用強密碼(自動生成即可),全局權限為select,lock tables
2、每日3:00開始執行,修改crontab
3、復制腳本到/etc/cron.daily
4、修改權限
5、腳本內容
. 代碼如下:
#!/bin/sh
dbuser="backup"
dbpassword="youpassword"
datas="db1 db2 db3"
filename=`date +%Y%m%d`
bin_dir="/usr/local/mysql/bin"
backup_dir="/root/Dropbox/backup/mysql"
#delete all files 10 days ago
find $backup_dir -mtime +10 -name "*" -exec rm -rf {} \;
#Do each database backup
for data in ${datas}; do
$bin_dir/mysqldump --opt -u$dbuser -p$dbpassword $data | gzip > $backup_dir/$data$filename.sql.gz
done

6、同上一個第6條
7、要備份的數據庫填入datas

三、感受

因為都在美國的原因,備份到dropbox的速度很快,一個10M的文件備份到dropbox,從開啟dropbox服務,馬上刷新dropbox的網站就可以看到了。
如果流量很緊張的話,也可以設定dropbox為每周運行,或每5天運行等。應該是需要設定要備份周期,或者結合起來使用。
Copyright © Linux教程網 All Rights Reserved