使用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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?