根据本教程http://www.a2hosting.com/kb/getting-started-guide/backing-up-your-data/backups-on-dedicated-servers-and-vps尝试备份 mysql 数据库
我做到了:
1)在home
目录中创建文件夹。/home/USERNAME/backup/
2)在文件夹中backup
创建文件,命名为backup-cron-mysql.sh
3)创建内容backup-cron-mysql.sh
#!/bin/bash
db_name=dabase_name
db_user=user
db_password=password
backup_filename=$db_name-`date +%F`
mysqldump -h localhost -u $db_user -p$db_password $db_name | gzip > /home/USERNAME/dbbackup/$backup_filename.sql.gz
使 backup-cron-mysql.sh 可执行(八进制:0755)
4)创建文件夹dbbackup
.路径:/home/USERNAME/dbbackup/
5)使用putty.exe
登录并输入crontab –e
,然后按 Enter。后者发现 cron 配置文件位于目录中/var/spool/cron/
,文件名为root
6)root
使用 Notepad++ 打开文件并粘贴以下代码
45 14 * * * /bin/sh /home/USERNAME/backup/backup-cron-mysql.sh
[email protected]
结果/home/USERNAME/dbbackup/
必须看到一些文件。但却看不到任何内容(空文件夹)。
请建议需要更正什么,以备份 mysql
答案1
检查以下文件以了解 cron 日志输出。/var/log/syslog
您还可以使用此命令过滤日志:
grep CRON /var/log/syslog
要配置你的 cron 作业中的日志:
45 14 * * * /bin/sh /home/USERNAME/backup/backup-cron-mysql.sh 2>&1 >> /var/log/myjob.log
https://askubuntu.com/questions/56683/where-is-the-cron-crontab-log
答案2
一些想法:
由于您使用的是 CentOS,因此 Cron 日志的默认位置应该是
/var/log/cron
。那里可能没有太多信息,但它至少应该告诉您 Cron 守护程序是否正在尝试运行您的脚本。上述 Zeeshan 的输出重定向可能可以成功运行,但更简单的表示方法是使用“将所有输出重定向到文件”...例如
45 14 * * * /bin/sh /home/USERNAME/backup/backup-cron-mysql.sh &> /some/file
这里很好地概述了 Bash 重定向方法:
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.htmlCrontab 文件有几个方面比较挑剔;其中之一是它们要求文件的最后一行是空白行。我建议确保文件末尾至少有一个空行(多留几个也无妨,所以你可以放几个进去以防万一。)
在尝试使用 Cron 自动执行备份脚本之前,您是否手动运行过备份脚本?如果脚本本身有问题,在其上添加 Cron 自动化只会使故障排除变得更加困难。