真是相见恨晚啊。。。。。。
本文原地址: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 条评论