编辑 Crontab

编辑 Crontab

我每天都尝试使用 mysqldump、screen 和 crontab 备份数据库表。如果我只运行mysqldump,它会正确转储,但如果我通过 执行此操作screen,则输出文件为空白。

编辑 Crontab

crontab -e

添加命令

0 0 * * * screen -dmS MYDATABASE_MYTABLE_backup mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz

答案1

不太确定在这种情况下您想用 screen 实现什么以及为什么需要它。但是您正在将 screen 的输出(使用 | .. > )传输到转储文件,而不是在 screen 中运行的程序的输出。您要么必须用引号将完整的 commando 括起来 - 或者最好将 commando 放在脚本文件中,然后直接调用该脚本

myscript.sh:

#!/bin/sh
mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz

屏幕-dmS MYDATABASE_MYTABLE_backup myscript.sh

相关内容