[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

619次阅读

共计 2275 个字符,预计需要花费 6 分钟才能阅读完成。

一、开通又拍云

又拍云提供一年内每月可免费使用 10GB 存储空间及 15GB 流量,对于小型博客网站来做远程备份很合适,开通过程不再详细介绍,官网注册开通进行实名认证即可。

二、开通云存储

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

注意服务名称,以及授权账号

三、备份脚本

这里提供一个在使用的备份数据库及网站数据的脚本,注意脚本中的路径需要自行更改,以及需要备份的数据库名称。

#!/bin/bash
#This is a sub-treasury backup script for MySQL And Web.
#File save time is 7 days.

#Backup MySQL
sqlpath="/data/DBbackup/"                        #SQL文件备份路径
if [ ! -d ${sqlpath} ];then
  mkdir -p ${sqlpath}
fi
SQLPASS="123123123"               #MySQLroot密码,如果脚本中填写不安全,可单独配置MySQL用户密码到my.cnf中
DATE=`date +%Y-%m-%d`
filename=${DATE}'.sql'
for db in wordpress mysql                       #需要备份的数据库名称
do
/usr/bin/mysqldump -u root -p{SQLPASS} --opt --default-character-set=utf8 --triggers --hex-blob --skip-lock-tables $db >${sqlpath}${db}-${filename}
cd ${sqlpath}
tar zcf ${sqlpath}${db}-$filename.tar.gz ${db}-${filename}
find ${sqlpath} -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} \;
done
rm -rf ${sqlpath}*.sql
echo "${DATE}.....MySQL bak OK!" >> /data/back.log

#Backup Web
webpath="/data/Webbackup/"                       #网站备份路径
if [ ! -d ${webpath} ];then
        mkdir -p ${webpath}
fi
cd /var/www/html
tar zcf ${webpath}WordPress-${DATE}.tar.gz wordpress
echo "${DATE}.....Web   bak OK!" >> /data/back.log

调试完成后,将脚本写入crontab定期执行

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

 

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

四,上传至UPyun脚本

#!/bin/bash
#Upload bak file to upyun
clear
SQLPath="/data/DBbackup"
WEBPath="/data/Webbackup"
#Download upx command
if [ ! -f /usr/bin/upx ];then
	wget -O /root/upx http://collection.b0.upaiyun.com/softwares/upx/upx-linux-amd64-v0.2.2 &> /dev/null
	mv /root/upx /usr/bin/upx && chmod +x /usr/bin/upx
fi
if [ ! -f /root/.upx.cfg ];then
	/usr/bin/upx login
fi

#Create dir on upyun
/usr/bin/upx cd &> /dev/null
/usr/bin/upx tree | grep DBbackup &> /dev/null
[ $? -ne 0 ] && /usr/bin/upx mkdir DBbackup
/usr/bin/upx cd &> /dev/null
/usr/bin/upx tree | grep Webbackup &> /dev/null
[ $? -ne 0 ] && /usr/bin/upx mkdir Webbackup
DATE=`date +%Y-%m-%d`

#Upload SQL bak file
SQLFile=`ls -l ${SQLPath} | grep ${DATE} | awk '{print $9}'`
/usr/bin/upx cd DBbackup &> /dev/null
echo "Uploading SQL..."
for i in ${SQLFile}
do
	/usr/bin/upx put ${SQLPath}/${i} &> /dev/null
done
/usr/bin/upx cd &> /dev/null
[ $? -eq 0 ] && echo "${DATE}:SQL file upload....OK" >> /data/upload.log
#Upload WEB bak file
WEBFile=`ls -l ${WEBPath} | grep ${DATE} | awk '{print $9}'`
/usr/bin/upx cd Webbackup &> /dev/null
echo "Uploading WEB..."
/usr/bin/upx put ${WEBPath}/${WEBFile} &> /dev/null
[ $? -eq 0 ] && echo "${DATE}:WEB file upload....OK" >> /data/upload.log

该脚本首次执行需要配置相关信息,先手动执行脚本配置后,即可加入cronotab中自动执行备份,例如

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

首次执行时,需要填写服务名及授权账号,准确填写后,即开始备份,加入crontab自动执行即可

注意:该脚本的执行时间需要在备份脚本之后,否则无法过滤到备份的文件,则无法上传

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

五,结果查看

使用ftp软件登录UPyun提供的地址,账户密码即为授权账户

可以看到,当前云存储中为空

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

 

手动执行上传脚本,开始上传

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

[SHELL脚本练习]利用UPyun(又拍云)定时自动备份网站

正文完
 
mervinwang
版权声明:本站原创文章,由 mervinwang 2017-09-14发表,共计2275字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文章搜索