自动备份网站到Google Storage for Developers

林继 VPS 知识 4,143 共写了2294个字 (2011-03-10 1:41:28) 没有评论 打印 扫描二维码 百度未收录

Google Storage for Developers是Google公司云计算存储产品,为开发者提供了100G的空间,300GB的流量/月,管理Google Storage很容易,最简单的方法就是使用游览器直接登录http://sandbox.google.com/storage 然后就可以使用Web平台进行管理,但是有点简陋。我平时基本都是在Centos5或者Debian5下面工作,命令行管理工具自然方便和熟悉些,下面我来说说Google Storage for Developers的命令行工具GSUtil的用法
一、安装Python2.7.1
如果你的系统是Debian5或者是最新的Ubuntu的话,就不需要安装了,这里专门针对Python版本较老的Centos5

  1. [root@vps ~]# wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tar.bz2
  2. [root@vps ~]# tar jxvf Python-2.7.1.tar.bz2
  3. [root@vps ~]# cd Python-2.7.1
  4. [root@vps Python-2.7.1]# ./configure
  5. [root@vps Python-2.7.1]# make;make install clean
  6. [root@vps Python-2.7.1] # cd ../
  7. [root@vps ~]# /usr/local/bin/python2.7 -V #查看版本

安装完成后要修改下环境变量
vim 命令
esc 进入命令模式
:q! 不保存退出
: x 保存退出

  1. //修改环境变量
  2. [root@vps ~]# vim ~/.bashrc
  3. //添加
  4. export PATH=$PATH:usr/local/bin/python2.7

二、安装GSUtil
可以到 http://code.google.com/p/gsutil/downloads/list 这里下载最新版

  1. [root@vps ~]# wget http://commondatastorage.googleapis.com/pub/gsutil.tar.gz
  2. [root@vps ~]# tar zxvf gsutil.tar.gz
  3. //修改环境变量
  4. [root@vps ~]# vim ~/.bashrc
  5. //添加
  6. export PATH=${PATH}:$HOME/gsutil
  7. export PYTHONPATH=${PYTHONPATH}:$HOME/gsutil/boto
  8. [root@techroad ~]# source ./.bashrc
  9. //输入Access Key和Secret Access Key
  10. [root@techroad ~]# gsutil ls

注意:运行gsutil ls 命令会提示输入Access Key和Secret Access Key,可以进入这里找到你的Access Key和Secret Access Key
如果运行gsutil工具无法用table补全,或者运行后提示-bash: sdlk: command not found是环境变量没有修改成功,先检查下是否修改正确,再退出一下终端重新进入。
[level l=0,10]需要将 gsutil 目录下的 gsutil 文件里的 #!/usr/bin/env python 修改成 #!/usr/bin/env python2.7 ,否则就会出错。[/level]

三、使用GSUtil

首先说说Bucket这个是一个存储的容器,相对于你的家目录一样的,第一次进入Google Storage for Developers必须要建立一个Bucket,同时Bucket下可以递归创建目录object,类似于mkdir -p的命令
[root@vps ~]# gsutil mb gs://terrancesiu gs://terrancesiu/shared gs://terrancesiu/source
//上传数据
[root@vps ~]# gsutil cp ./conf.tar.gz gs://terrancesiu/source/conf.tar.gz
//列出文件
[root@vps ~]# gsutil ls gs://terrancesiu
//移动文件
[root@vps ~]# gsutil mv gs://terrancesiu/source/conf.tar.gz gs://terrance/shared/conf.tar.gz
//删除文件文件、bucket
[root@vps ~]# gsutil rm gs://terrance/shared/conf.tar.gz
[root@vps ~]# gsutil rb gs://terrance

四、自动备份脚本,同时备份网站文件及MySQL数据库

[level l=0,10]

  1. #!/bin/bash
  2. export PATH=$PATH:usr/local/bin/python2.7
  3. export PATH=${PATH}:$HOME/gsutil
  4. export PYTHONPATH=${PYTHONPATH}:$HOME/gsutil/boto
  5. #
  6. wwwroot_dir="/home/web" #修改这个变量的地址为你存放网页的目录
  7. mysqldata_dir="/home/sql" #修改这个变量为你的MySQL数据文件的存放目录,或者你可以修改脚本用mysqldump备份出sql文件
  8. #sql_dir="/home/web/wp-content/sql_backup" #修改这个变量为你的MySQL数据文件的存放目录,或者你可以修改脚本用mysqldump备份出sql文件
  9. #
  10. echo "***************  Start  ***************"
  11. #
  12. #tar czvf sql$(date +%Y%m%d).tar.gz $sql_dir
  13. /usr/local/mysql/bin/mysqldump -u数据库用户名 -p数据库存密码 数据库 | gzip > /home/sql/web$(date +%Y%m%d).sql.gz
  14. #/usr/local/mysql/bin/mysqldump -u数据库用户名 -p数据库存密码 数据库 | gzip > /home/sql/LuManager$(date +%Y%m%d).sql.gz
  15. tar czvf mysql$(date +%Y%m%d).tar.gz $mysqldata_dir
  16. #rm -f /home/web/wp-content/sql_backup/*.sql*
  17. tar czvf vps$(date +%Y%m%d).tar.gz $wwwroot_dir
  18. #
  19. gsutil cp ./mysql*.tar.gz gs://linji.cn/mysql$(date +%Y%m%d).tar.gz && rm -f mysql*.tar.gz
  20. #gsutil cp ./sql*.tar.gz gs://linji.cn/sql$(date +%Y%m%d).tar.gz && rm -f sql*.tar.gz
  21. gsutil cp ./vps*.tar.gz gs://linji.cn/vps$(date +%Y%m%d).tar.gz && rm -f vps*.tar.gz
  22. rm -f /home/sql/*.sql.gz
  23. #rm -f /home/web/wp-content/sql_backup/*.sql*
  24. echo "***************  End  ***************"

[/level]

chmod 750 autobackup.sh 赋其执行的权限

./autobackup.sh 开始执行

$crontab -e 让脚本自动执行,每周一、四、日的16:50执行一次

50 18 * * 0,3,5 autobackup.sh

Ctrl X 根据提示保存退出。
基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >