Ubuntu 使用cron作业进行数据库备份
我在/var/www/cronjobs/中创建了一个backup.sh,其中每个其他cronjobs都是:Ubuntu 使用cron作业进行数据库备份,ubuntu,cron,Ubuntu,Cron,我在/var/www/cronjobs/中创建了一个backup.sh,其中每个其他cronjobs都是: mysqldump --user root --password=mypass12--opt MYDATABASE \ > /home/balint/db/db-`date +%Y-%m-%d`.sql 在/etc/crontab中,我指定了cron,就像我的其他cronjobs一样: */2 * * * * root wget -q -O- http://mydomain
mysqldump --user root --password=mypass12--opt MYDATABASE \
> /home/balint/db/db-`date +%Y-%m-%d`.sql
在/etc/crontab中,我指定了cron,就像我的其他cronjobs一样:
*/2 * * * * root wget -q -O- http://mydomain.com/cronjobs/backup.sh
在/home/balint/db中没有创建任何文件/
我手动创建了db文件夹。我可以用root用户和密码mypass12输入mysql和phpmyadmin。当然,*/2仅用于测试
我缺少什么?使用
wget
命令将从mydomain.com
获取脚本,但它不会执行脚本。因此,它的行为就好像脚本没有运行一样也就不足为奇了,因为它没有运行
在回复评论时添加:
如果“你所有的cronjobs”都是这样写的,并且工作正常,那么你正在使用一些你没有告诉我们的非标准cron
。
我刚刚在/etc/crontab
中测试了一个作业,正如您在Ubuntu 13.04上所描述的那样。它的行为如文档所示,并且没有将作业的cmd
部分的stdout作为输入传递给另一个shell
您是否查看了
/var/log/syslog
中的诊断信息?首先,使用备份脚本中的命令备份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
对于无密码登录,请确保在要上载数据库转储的远程计算机中添加该计算机的公钥,请参见下面的链接
我对所有cronjob使用wget命令,它们都工作正常。