我对cron作业(以及一般的Linux)的经验有限,但设法建立了一个mysql转储脚本,当手动运行时效果很好,但是当添加到crontab时它似乎没有运行。
我的脚本位于:/root/backup_mysql.sh
我的crontab看起来像这样:
0 12 * * * /root/backup_mysql.sh
0 21 * * * /root/backup_mysql.sh
只是在脚本中有一些东西阻止它通过cron运行,这里是备份脚本。
#!/bin/sh
dbpass="password"
echo "Grabbing database list... excluding mysql, information_schema & phpmyadmin... dumping databases to /backups/"
for db in \
`mysql -u root -p$dbpass -e "show databases;" \
| tr -d "| " \
| egrep -v "(Database|mysql|information_schema|phpmyadmin.sql)"`; \
do mysqldump -u root -p$dbpass --opt --routines --databases $db > "/backups/$db.sql";
done
echo "done..."
对不起,如果这很容易,就看不出我做错了什么 - 任何帮助都会非常感激。
干杯
本
答案 0 :(得分:1)
运行 printenv
将所有环境变量复制并粘贴到ur脚本(/root/backup_mysql.sh)。
将cronjob添加为sudo
sudo crontab -e
0 12 * * * /root/backup_mysql.sh
0 21 * * * /root/backup_mysql.sh