真是相见恨晚啊。。。。。。

本文原地址:http://www.im286.com/thread-8719205-1-1.html

 

首先用SSH连接服务器,新建一个目录backup,最好不要在网页目录下,一是防止被下载脚本或者备份文件。而是不会被不小心备份进去。

切换到backup目录,打开vi编辑器,输入下面的脚本:

01.cd /home/yourfolder/backup #切换到备份目录
02.sx=$(date +%y%m%d) #获取当前日期

03.mysqldump -u用户名 -p密码 –all-databases > db_backup_$sx.sql #导出数据库

04.bzip2 -z -9 -f db_backup_$sx.sql #压缩数据库

05.tar -jcvf /home/yourfolder/backup/web_backup_$sx.tar.bz2 /home/yourfolder/public_html #压缩网站目录

06.tar -jcv -f full_$sx.tar.bz2 web_backup_$sx.tar.bz2 db_backup_$sx.tar.bz  #合并压缩数据库和网站目录

07.ftp -vn ftpserver << autoftp

08.user username password

09.cd /temp

10.type binary

11.put full_$sx.tar.bz2 full_$sx.tar.bz2

12.close

13.quit

14.autoftp

15.rm db_backup_$sx.tar.bz web_backup.tar.bz2 full_$sx.tar.bz2   #移除临时文件

以上代码需要注意的地方:

1、输入数据库用户名和密码的地方不需要空格,输入的是Cpanel的用户名和密码,–all-databases的意思是备份所有数据库,如果备份单个数据库就输入相应的数据库用户名和密码,–all-databases改成数据库的名字。

2、ftp处,cd /temp 是FTP服务器自己建立的备份目录,如果备份到根目录删除此目录即可。

输入完毕后,输入“:”“wq”保存退出,到cpanel里的cron job加入定时任务:

/home/yourfolder/backup/backup.sh

这样既可定时的备份整个虚拟机的文件了。另外也有网友想问,如果备份到邮件,其实只要把上面ftp那段去掉,换成:

mutt youremailadress -a 备份文件名 -s “Database Backup”
就可以了。需要注意的是,邮件发送受邮件服务器附件大小制约,比如Gmail的附件最大10M,超过10M的备份文件就不能成功发送了。如果只备份数据库的话是可以考虑的。

另附几个LINUX常用命令:
查看当前路径:pwd

VI: 按insert键键入字符,按esc退出编辑,先按:“:”后,再按wq 是保存并退出vi编辑器

共有 0 条评论