mysqldump 定时任务 执行后备份的文件为空
2024-10-15 14:03:42
#!/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 + -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 + -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 成功,
最新文章
- mysql和CSV
- JavaServer Faces 2.0 can not be installed解决方案
- AFNetworking图片缓存问题
- 初试MarkDown
- sp_executesql
- Eclipse / android studio 添加第三方jar包 步骤
- 黑马程序员——JAVA基础之Map集合
- 0511 backlog 项目管理
- ios真机调试详细步骤
- redmine fastcgi常常崩溃的解决方式
- Oracle cloud control 12c 怎样改动sysmanpassword
- HTML移动端开发常见的兼容性总结
- JS声明对象时属性名加引号与不加引号的问题
- 【Java基础】【08面向对象_继承&;方法&;final】
- 第三十七篇-BottomNavigationVIew底部导航的使用
- error: Microsoft Visual C++ 14.0 is required.
- 【ELK】之Kibana使用
- freemark null处理
- (转载)准确率(accuracy),精确率(Precision),召回率(Recall)和综合评价指标(F1-Measure )-绝对让你完全搞懂这些概念
- Ubuntu 分辨率更改 xrandr Failed to get size of gamma for output default