本文章来给大家介绍关于mysql定时备份数据库的shell脚本详解,希望对大家会有所帮助呀.
- vi/home/zhangy/database_bak.sh
- #!/bin/sh
- #File:/home/zhangy/database_bak.sh
- #DatabaseinfobakupmysqlTANK2009/11/04
- DB_USER="root"#用户名
- DB_PASS="********"#密码
- DB_NAME="myblog"#要备份的数据名
- #Othersvars
- DATE=`date+%Y_%m_%d`#要备份的日期
- YESTERDAY=`date-dyesterday+%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
- #DatabaseinfobakupmysqlTANK2009/11/04
- DB_USER="root"#用户名
- DB_PASS="********"#密码
- DB_NAME="myblog"#要备份的数据名
- #Othersvars
- DATE=`date+%Y_%m_%d`#要备份的日期
- YESTERDAY=`date-dyesterday+%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@BlackGhostcron]#ps-e|grepcrond
- 21519?00:00:00crond
- #打开crontab
- [root@BlackGhostcron]#crontab-e
- #在里面加上一行
- 0018***/home/zhangy/database_bak.sh
- #查看一下是否已加上
- [root@BlackGhostcron]#crontab-l
- #
- #DONOTEDITTHISFILEMANUALLY!!USEcrontab-eINSTEAD.
- # //phpfensi.com
- #
- 01****/usr/sbin/run-cron/etc/cron.hourly
- 0200***/usr/sbin/run-cron/etc/cron.daily
- 2200**0/usr/sbin/run-cron/etc/cron.weekly
- 42001**/usr/sbin/run-cron/etc/cron.monthly
- 5606***/home/zhangy/www/bb.php
- 5123***/sbin/shutdown-hnow
- 0018***/home/zhangy/database_bak.sh
然后退出.