本文章來給大家介紹關于mysql定時備份數據庫的shell腳本詳解,希望對大家會有所幫助呀.
- vi /home/zhangy/database_bak.sh
- #!/bin/sh
- # File: /home/zhangy/database_bak.sh
- # Database info bakupmysql TANK 2009/11/04
- DB_USER="root" #用戶名
- DB_PASS="********" #密碼
- DB_NAME="myblog" #要備份的數據名
- # Others vars
- DATE=`date +%Y_%m_%d` #要備份的日期
- YESTERDAY=`date -d yesterday +%Y_%m_%d` #刪除昨天的備份
- BIN_DIR="/usr/local/mysql/bin"
- BCK_DIR="/home/zhangy/database_bak" #備份路徑
- cd $BCK_DIR
- #刪除以前該數據庫的備份,因為我的linux下面還有2G硬盤空間,郁悶。
- if [ -f $YESTERDAY$DB_NAME".sql" ]
- then
- rm -f $YESTERDAY$DB_NAME".sql"
- fi
- # 備份
- ${BIN_DIR}/mysqldump --opt -u${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BCK_DIR}/${DATE}${DB_NAME}.sql
- vi /home/zhangy/database_bak.sh
- #!/bin/sh
- # File: /home/zhangy/database_bak.sh
- # Database info bakupmysql TANK 2009/11/04
- DB_USER="root" #用戶名
- DB_PASS="********" #密碼
- DB_NAME="myblog" #要備份的數據名
- # Others vars
- DATE=`date +%Y_%m_%d` #要備份的日期
- YESTERDAY=`date -d yesterday +%Y_%m_%d` #刪除昨天的備份
- BIN_DIR="/usr/local/mysql/bin"
- BCK_DIR="/home/zhangy/database_bak" #備份路徑
- cd $BCK_DIR
- #刪除以前該數據庫的備份,因為我的linux下面還有2G硬盤空間,郁悶。
- if [ -f $YESTERDAY$DB_NAME".sql" ]
- then
- rm -f $YESTERDAY$DB_NAME".sql"
- fi
- # 備份
- ${BIN_DIR}/mysqldump --opt -u${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BCK_DIR}/${DATE}${DB_NAME}.sql
二,定期執行,把shell放到crontab里面,代碼如下:
- #查看crond是否已啟動
- [root@BlackGhost cron]# ps -e|grep crond
- 21519 ? 00:00:00 crond
- #打開crontab
- [root@BlackGhost cron]# crontab -e
- #在里面加上一行
- 00 18 * * * /home/zhangy/database_bak.sh
- #查看一下是否已加上
- [root@BlackGhost cron]# crontab -l
- #
- # DO NOT EDIT THIS FILE MANUALLY!! USE crontab -e INSTEAD.
- # //Vevb.com
- #
- 01 * * * * /usr/sbin/run-cron /etc/cron.hourly
- 02 00 * * * /usr/sbin/run-cron /etc/cron.daily
- 22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly
- 42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly
- 56 06 * * * /home/zhangy/www/bb.php
- 51 23 * * * /sbin/shutdown -h now
- 00 18 * * * /home/zhangy/database_bak.sh
然后退出.
新聞熱點
疑難解答