我在/ var / www / cronjobs /中创建了一个backup.sh,其中每个其他cronjobs都是:
mysqldump --user root --password=mypass12--opt MYDATABASE \
> /home/balint/db/db-`date +%Y-%m-%d`.sql
在*/2 * * * * root wget -q -O- http://mydomain.com/cronjobs/backup.sh
/ home / balint / db /中没有创建单个文件 我手动创建了db文件夹。我可以使用root用户和密码mypass12输入mysql和phpmyadmin。当然,* / 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
对于无密码登录,请确保在要上载数据库转储的远程计算机中添加计算机的公钥,请参阅以下链接