Ari的小跟班

  :: :: 博问 :: 闪存 :: :: :: :: 管理 ::
  65 随笔 :: 1 文章 :: 1 评论 :: 15090 阅读

使用crontab执行备份.sh脚本后备份为空,但是自己手动执行是没问题的

参考[(163条消息) 定时任务执行mysql备份脚本备份结果为空_mysql备份脚本日期有空格怎么回事_玉无暇的博客-CSDN博客](https://blog.csdn.net/weixin_51009330/article/details/120431278#:~:text=用 crontab,自动备份MySQL的时候导出总是为空,原因是corn的环境变量中没有mysqldump,所以用crontab执行mysqldump的时候要加上绝对路径,如:%2Fusr%2Flocal%2Fmysql%2Fbin%2Fmysqldump xxxxxxx这样就可以了。)

结论就是用crontab自动备份MySQL的时候导出总是为空,原因是corn的环境变量中没有mysqldump,使用mysqldump是需要给出全路径:

例如,我原来的.sh文件为:

#!/bin/bash
UER="xxxxx"
PASSWORD="xxxxx!"
DATABASE="xxxx"
BACKUP_DIR="xxxxxxxxxxxx"
DATE=$(date +%Y-%m-%d-%H%M%S)
mysqldump -u $USER -p$PASSWORD --protocol=TCP -h 127.0.0.1 $DATABASE > $BACKUP_DIR/backup_$DATE.sql

自己手动执行该文件是可以正常执行的,但是一旦由crontab自动执行时,就会出错,备份出来的sql文件始终为空。

改为一下方式即可:

#!/bin/bash
UER="xxxxx"
PASSWORD="xxxxx!"
DATABASE="xxxx"
BACKUP_DIR="xxxxxxxxxxxx"
DATE=$(date +%Y-%m-%d-%H%M%S)
/usr/local/mysql/bin/mysqldump -u $USER -p$PASSWORD --protocol=TCP -h 127.0.0.1 $DATABASE > $BACKUP_DIR/backup_$DATE.sql
posted on   Ari的小跟班  阅读(780)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示