操作步驟:
方法一
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、最後一步就是指定備份時間了。
到這裡就完成自動定時備份了,很簡單吧。