日度归档:2010年1月27日

用g.ho.st免费网络硬盘自动进行vps的mysql及重要文件备份

g.ho.st提供了多达5G的免费硬盘,最重要的是它支持ftp上传,所以非常简单的实现vps或是独立主机的数据定时把备份上传到ghost的网络硬盘

g.ho.st是一家提供免费web os的服务商,并且界面是中文的,比较酷,大家可以试试!

下面是我的推荐注册地址,可以帮我增加一些硬盘容量,嘿嘿!

http://g.ho.st/?action=invitation&referral=xzy&language=zh

 

g.ho.st的ftp开通好像不是即时的,所以注册完可以等上几分钟再试试ftp

ftp的地址是 ftp.g.ho.st  用户名密码:ghost上注册的用户密码及密码

下面是我的备份并ftp上传的shell脚本

第一个,每天备份mysql数据库并上传到ftp    保存为backmysql 设777权限

 

SQL代码
  1. #!/bin/sh   
  2.   
  3. #备份的文件名,我的是直接按每天的时间命名   
  4. filename=mysql_$(date +%F).sql.gz   
  5.   
  6. #备份的路径   
  7. file=/home/vhost/backup/backsql/$filename   
  8. /usr/bin/mysqldump  –all-databases -uroot -p您的mysql用户root的密码 –default-character-set=utf8 –opt  | gzip >$file   
  9.   
  10. sleep 1s   
  11. #转到数据库备份文件的所在文件夹   
  12. cd /home/vhost/backup/backsql   
  13. #ftp up   
  14. ftp -i -n <<!   
  15. open ftp.g.ho.st   
  16. #修改成您的g.ho.st的用户名及密码
  17. user 用户名 密码   
  18. #转到ftp上预设的backup/backsql文件夹 
  19. cd /backup/backsql   
  20. #上传备份文件   
  21. put $filename   
  22. bye   
  23. !   
  24. sleep 1s   
  25. echo ‘ok’;  

 

第二个是备份网站及相关配置文件,并上传到ftp硬盘  保存为backfile 设777权限

 

SQL代码
  1. #! /bin/bash   
  2. #备份的文件名,我的是直接按每天的时间命名   
  3. year=`date +%Y%m%d`   
  4. filename=$year.tar.gz   
  5. #打包所在备份的文件夹,支持多个文件夹一起打包   
  6. tar zcvf /home/vhost/backup/backfile/$year.tar.gz /home/vhost /home/ftp /usr/local/nginx/conf   
  7.   
  8.   
  9. sleep 1s   
  10. #转到备份包的所在文件夹   
  11. cd /home/vhost/backup/backfile   
  12. #ftp up   
  13. ftp -i -n <<!   
  14. open ftp.g.ho.st   
  15. #g.ho.st的用户名及密码   
  16. user 用户名 密码   
  17. #转到ftp下的backup/backfile文件夹   
  18. cd /backup/backfile   
  19. put $filename   
  20. bye   
  21. !   
  22. sleep 1s   
  23. echo ‘ok’;   
  24.   

最后一步,设置linux系统的crontab

每天1点1分执行backmysql脚本,备份并上传

01 01 * * * root /home/vhost/backup/backmysql

每星期一的20点1分执行backfile脚本,备份并上传

20 01 * * 1 root /home/vhost/backup/backfile