使用cron作业进行数据库备份

时间:2013-08-03 09:46:57

标签: ubuntu cron

我在/ var / www / cronjobs /中创建了一个backup.sh,其中每个其他cronjobs都是:

mysqldump --user root --password=mypass12--opt MYDATABASE \
    > /home/balint/db/db-`date +%Y-%m-%d`.sql
我像其他cronjobs一样指定了cron:

*/2 * * * * root wget -q -O- http://mydomain.com/cronjobs/backup.sh

/ home / balint / db /中没有创建单个文件 我手动创建了db文件夹。我可以使用root用户和密码mypass12输入mysql和phpmyadmin。当然,* / 2仅用于测试。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

wget命令将从mydomain.com获取脚本,但它不会执行它。所以毫不奇怪,它的表现就好像脚本没有被运行,因为它不是。

在回复评论时添加了

如果“你所有的cronjobs”都是这样写的并且正在运行,那么你正在使用一些你没有告诉我们的非标准cron。 我刚刚在Ubuntu 13.04上描述的/etc/crontab测试了一份工作。它的行为与文档一致,并没有将作业的cmd部分的标准输出作为另一个shell的输入。

您是否查看/var/log/syslog进行任何诊断?

答案 1 :(得分:0)

首先使用备份脚本中的命令备份您的mysql转储。

mysqldump --user root --password=mypass12--opt MYDATABASE > /home/balint/db/db-`$(date +"%d-%m-%Y")`.sql 

然后用scp附加它以将生成的内容传输到远程位置

scp /home/balint/db/db-`$(date +"%d-%m-%Y")`.sql you@yourip

对于无密码登录,请确保在要上载数据库转储的远程计算机中添加计算机的公钥,请参阅以下链接

SSH passwordless login