定时备份数据库shell脚本

  • 2018-05-30
  • 0
  • 0

今天晚上上线!不让睡觉!

把原来的宝塔面板换掉了.现在完全是命令行操作.

之前挺好的傻瓜化操作.现在得手敲命令行。

但是对我命令行操作 帮助挺大.还抽空学了下shell脚本

下面记录一下 定时备份数据库的脚本

#!/bin/sh

# Database info
DB_USER="table"
DB_PASS="*******"
DB_HOST="127.0.0.1"
DB_NAME="table"

# Others vars
BIN_DIR="/usr/local/mysql/bin" #the mysql bin path
BCK_DIR="/data/mysqlBackup"    #the backup file directory

DATE=`date +%s`

if [ ! -d $BCK_DIR ];then
    mkdir $BCK_DIR
fi

# 执行备份
$BIN_DIR/mysqldump  -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql

# 删除七天前的数据
find $BCK_DIR -name *.sql -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1

-mtime +7 7天前的数据

-mmin +60 60分钟前的数据

crontab -e 添加定时脚本

这个是 每分钟执行一次.方便我测试效果

*/1 * * * * /bin/sh /home/huangzhicheng/wwwroot/api/sh/cron_mysql.sh

下面这个是每天凌晨3点执行一次.

00 3 * * * /bin/sh /home/huangzhicheng/wwwroot/api/sh/cron_mysql.sh

遇到的坑! 如果mysqldump没有用绝对路径,可能导出来的数据是空的.

好啦,继续加班了.今晚旁边坐着美女测试同事~

评论

还没有任何评论,你来说两句吧