mysqldump 定时任务 执行后备份的文件为空

#!/bin/bash
mysql_host="127.0.0.1"
mysql_user="root"
mysql_passwd="********"

back_dir="/www/backup/database/"

ignore_db="information_schema|mysql|performance_schema"

db_arr=`mysql -u${mysql_user} -p${mysql_passwd} -h${mysql_host}  -Bse "show databases;" | grep -vE "(${ignore_db})"`

datetime=$(date +%Y-%m-%d-%H_%M_%S)

for dbname in ${db_arr}
do
    mysqldump -u${mysql_user} -p${mysql_passwd} -h${mysql_host} ${dbname} | gzip > ${back_dir}${dbname}-${datetime}.sql.gz
done

find ${back_dir} -mtime +10 -name "*.*" -exec rm -rf {} \;

 

 docker 方式备份数据库

#!/bin/bash

datetime=$(date +%Y-%m-%d-%H_%M_%S)

MYSQL=$(docker ps| grep "mysql:5.7" | grep -v grep | awk '{print $1}')

backup_path=/data/backup/

MYSQL_ROOT_PASSWORD=密码

docker exec ${MYSQL} sh -c "exec mysqldump --all-databases -uroot -p$MYSQL_ROOT_PASSWORD" > ${backup_path}/${datetime}_all-databases.sql

find ${backup_path} -mtime +10 -name "*.sql" -exec rm -rf {} \;

 

 

 

 

 

 

在定时任务中 执行 shell 脚本文件 执行的结果出来的压缩包为空,报错找不到 mysqldump 原因是mysqldump 没有设置全局 shell调用变量

解决:

找到mysqldump 安装路径 加上软连接

ln -fs /usr/local/mysql/bin/mysql /usr/bin


参考 http://www.cnblogs.com/xcxc/archive/2013/02/22/2921764.html

 

单独运行sh shh.sh 成功,

 

转载于:https://www.cnblogs.com/freefei/p/4138794.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值