操作步驟:
方法一
1、安裝p7zip:由於源裡面沒有此包,直接下載源碼安裝。
地址:http://p7zip.sourceforge.net/
代碼如下 復制代碼wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2
tar xvf p7zip_9.20.1_src_all.tar.bz2
cd p7zip_9.20.1_src_all
make && make install
wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2
tar xvf p7zip_9.20.1_src_all.tar.bz2
cd p7zip_9.20.1_src_all
make && make install
2、備份腳本(back.sh):
#!/bin/sh
filename="/home/www/data/"`date -d last-day +%Y%m%d`
viewdate=`date -d last-day +%Y-%m-%d`
mysqlcheck -uuser -ppassword database
mysqldump -uuser -ppassword --opt --compact --skip-comments database table --where "datafield like
'$viewdate%'" > $filename".sql"
sed -i 's/CREATE/ TABLE/&/ IF/ NOT/ EXISTS/' $filename".sql"
/usr/local/bin/7za a $filename".7z" $filename".sql"
rm $filename".sql"
3、用cron實現每天0點自動備份
代碼如下 復制代碼00 00 * * * /home/www/data/bash.sh > /dev/null 2>&1
通過這種方法,每天生成100M數據表,壓縮後為7M多
方法二
Linux 下自動備份數據庫的 shell 腳本
Linux 服務器上的程序每天都在更新 MySQL 數據庫,於是就想起寫一個 shell 腳本,結合 crontab,定時備份數
據庫。其實非常簡單,主要就是使用 MySQL 自帶的 mysqldump 命令。
腳本內容如下:
代碼如下 復制代碼#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`
# TODO
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz
然後使用將此腳本加到 /etc/crontab 定時任務中:
01 5 * * 0 mysql /home/mysql/backup.sh
好了,每周日凌晨 5:01 系統就會自動運行 backup.sh 文件備份 MySQL 數據庫了。
代碼如下 復制代碼/home/www/inc/back
windows服務器下自動備份mysql
我們先把下面代碼保存成一個bakmysql.bat文件,然後保存。位置可以隨意了。
代碼如下 復制代碼net stop mysql
xcopy c:/mysql/data/bbs/*.* d:/db_bak/bbs/%date:~0,3%/ /y
net start mysql
然後我們再利用windows計劃任務來操作
1、開始-程序-附件-系統工具-計劃任務
2、添加計劃任務。
3、最後一步就是指定備份時間了。
到這裡就完成自動定時備份了,很簡單吧。