利用Google Storage for Developers自动备份网站(适用Centos)

ZephyrXT 发布于 阅读:53

一、安装Python2.7
如果你的系统是Debian5或者是最新的Ubuntu的话,就不需要安装了,这里专门针对Python版本较老的Centos5

[root@techroad ~]# wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2

[root@techroad ~]# tar jxvf Python-2.7.3.tar.bz2

[root@techroad ~]# cd Python-2.7.3
[root@techroad Python-2.7]# ./configure 
[root@techroad Python-2.7]# make && make install
[root@techroad Python-2.7]# cd ../
[root@techroad ~]# /usr/local/bin/python2.7 -V #查看版本
 

安装完成后要修改下环境变量,和Yum的配置文件,因为Yum工具依赖Python2.4
//修改环境变量
 [root@techroad ~]# vim ~/.bashrc
//添加
export PATH=$PATH:usr/local/bin/python2.7
//修改Yum配置文件
[root@techroad ~]# vim /usr/bin/yum
修改#!/usr/bin/python为#!/usr/bin/python2.4

下载并安装gsutil工具

wget http://commondatastorage.googleapis.com/pub/gsutil.tar.gz
tar zxvf gsutil.tar.gz
mv gsutil /usr/local/
vim ~/.bashrc
#加入这两行
export PATH=${PATH}:/usr/local/gsutil
export PYTHONPATH=${PYTHONPATH}:/usr/local/gsutil

修改后保存退出

source ./.bashrc
 

//输入Access Key和Secret Access Key
[root@techroad ~]# gsutil ls

注意:运行gsutil ls 命令会提示输入Access Key和Secret Access Key,可以进入这里 找到你的Access Key和Secret Access Key
如果运行gsutil工具无法用table补全,或者运行后提示-bash: sdlk: command not found是环境变量没有修改成功,先检查下是否修改正确,再退出一下终端从新进入,或者查看下这篇文章

别忘记了建备份目录:mkdir -p /home/backup

编写定时备份脚本
vi /root/backup.sh

输入

cd /home/backup                                    #备份目录
DataBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
MYSQL_USER=root                               #数据库用户名
MYSQL_PASS=123456                         #数据库密码
WEB_DATA=/home/wwwroot                 #网站文件目录

for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done

tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
gsutil cp /home/backup/$DataBakName gs://vpn/backup/$DataBakName

tar zcf /home/backup/$WebBakName $WEB_DATA
gsutil cp /home/backup/$WebBakName gs://vpn/backup/$WebBakName

给脚本添加权限:

chmod +x AutoBackupToFtp.sh

利用crontab 实现自动 备份,在ssh下,

crontab -e没有这个命令?请看CentOS安装crontab及使用方法

输入以下内容:

00 00 * * * /home/AutoBackupToFtp.sh这样就实现了每天00:00自动 备份网站文件和数据库上传到FTP空间

 

————crontab里无法运行————

编辑:vi /usr/local/gsutil/gsutil

修改第一行为:#!/usr/local/bin/python2.7 #这样就可以指定使用python2.7运行 消除crontab里无法的错误

 

参考:

使用Google Storage自动备份
https://bbs.zephyrxt.com/thread-3506-1-1.html

Google Storage for Developers工具GSUtil使用教程
https://bbs.zephyrxt.com/thread-3507-1-1.html

利用Google Storage for Developers自动备份网站
https://bbs.zephyrxt.com/thread-3508-1-1.html

自动备份网站文件和数据库上传到FTP空间
https://bbs.zephyrxt.com/thread-3350-1-1.html
CentOS中升级Python到3.2
https://bbs.zephyrxt.com/thread-6763-1-1.html