A-A+

利用cpanel的Cron jobs自动备份数据库

2012年08月24日 灵犀一指 利用cpanel的Cron jobs自动备份数据库已关闭评论 阅读 1,404 人 次

首先,进入cpanel,点击Advanced(高级)栏-Cron jobs(时钟守护作业)-Add New Cron Job(增加新的作业)
设定好执行时间,在下面的Command中写入/home/xxx/backups/backup.sh(xxx为你的用户名)
登录ftp,在自己的主目录下建立backups目录,将下面的脚本代码存成backup.sh文件,放到backups目录下
脚本代码如下:[php]

cd /home/jiajia/backups
mkdir archives
mkdir mysql
suffix=$(date +%y%m%d)
mysqldump –opt -u数据库用户名 -p数据库密码 数据库 > mysql/backup1.$suffix.sql
tar zcf archives/backup1.$suffix.tar.gz mysql/*
rm -r mysql/
mutt yourname@qq.com -a /home/jiajia/backups/archives/backup1.$suffix.tar.gz -s “Database Backup”
rm -r archives[/php]

比较简单,第1句是进入自己的主目录,需要改成你自己的主目录(在cpanel首页的左边可以看到)。
第2、3句是建立两个临时文件夹,mysql是sql语句,未压缩的数据库备份,archives是已经经过压缩的的备份。
第4句是取得时间,作为备份文件的文件名。
第5句是备份数据库。
第6句是压缩数据库。
第7、9句是删除临时目录。第8句是邮件发送。

有些空间上mutt是无效的,提示错误的命令,这个我就没办法了。(上面的脚本我在justhost上成功,在Coolhandle上就是mutt错误,发送不出去)

如果出现“No such file or directory”的错误,那么解决方法是:
只要将脚本文件转换为UNIX格式即可。
转换方法:
editplus:文档-文件格式,选择unix
ultraedit:文件-转换-dos转为unix

这是因为服务器是linux系统,但是我们却是在windows下写的脚本,导致文件里有一些看不见的隐藏字符。经过转换后,可以看到脚本文件小了一点点,现在再把脚本传上去,成功。

另外还有一个小点要注意的是,脚本文件传上去后,要把文件权限设置为755,否者会提示你Permission denied (没有权限)

在调试脚本的时候最好在Cron jobs中将Cron Email写上自己的邮箱,这样脚本运行中如果有错误,会马上发email过来。

标签:

评论已关闭!