使用 Cron Job 进行每日数据库备份

Posted

技术标签:

【中文标题】使用 Cron Job 进行每日数据库备份【英文标题】:Daily Database backup using Cron Job 【发布时间】:2011-09-28 13:02:06 【问题描述】:

您好,我想在每天午夜使用 cron 作业进行数据库备份...并且数据库备份的名称应附加当前日期...备份文件的格式应为 mydata_yyyy_mm_dd.sql ... 备份文件应放在 /root 目录中

【问题讨论】:

【参考方案1】:

使用此内容创建一个 cron.sh 文件:

 mysqldump -u root -pPASSWORD DBNAME 2>> "/filename_`date '+%Y-%m-%d'`.sql"

并授予该 cron.sh 文件的读取权限或完全访问权限。

并将这一行添加到 crontab 文件中 ($ crontab -e)

 0 0 * * *   cron.sh

【讨论】:

mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) 尝试连接时 遇到了同样的错误。出现错误:1045:尝试连接时拒绝用户访问(使用密码:否)【参考方案2】:

类似

0 0 * * * /path/to/mysqldump ... > /path/to/backup/mydata_$( date +"%Y_%m_%d" ).sql

应该可以。

请阅读

男人约会 man 5 crontab

【讨论】:

我不得不在% 中添加转义斜杠,因为% 通常被cron 解释为换行符。例如,... /path/to/backup/mydata_$( date +"\%Y_\%m_\%d" ). centos 6.4 没问题。不需要转义 @wonk0 请指导我。 ***.com/questions/33057744/…

以上是关于使用 Cron Job 进行每日数据库备份的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes Cron-Job闲置通知

我可以使用 Cron 在 macOS 上安排每日提交吗?

Elasticsearch的灾备和恢复

mysql主备切换是啥意思?

xxl-job中的cron表达式详解

每天根据日期名称备份mysql数据库