linux下实现VPS免费备份脚本
程序员文章站
2023-11-23 16:16:46
有人说你怎么不备份呢?这个问题我也考虑过啊,其实你有没有想过对于这种国外的vps什么的,备份一下所有的网站怎么说也得百十兆吧。 你总不能天天去下载吧?这带宽可受不了,就算是...
有人说你怎么不备份呢?这个问题我也考虑过啊,其实你有没有想过对于这种国外的vps什么的,备份一下所有的网站怎么说也得百十兆吧。
你总不能天天去下载吧?这带宽可受不了,就算是带宽充足,说不定vps哪天也让你给下载挂了。
ok~切入正题,先说这个免费备份的问题,实际上也不免费,只是有个前提,那就是你在godaddy.com的买的有域名,大家都知道在godaddy上买域名可以免费申请空间的,对于不用这东西的来说实在是太浪费了,所以今天的主题就是针对那些在godaddy买过域名有免费空间的盆友(在godaddy有域名没申请空间的可以去问问度娘谷哥)
那我们备份vps的原理就是利用shell脚本备份网站以及数据库,然后通过ftp脚本吧备份文件上传到godaddy的免费空间,简单吧。
那我就直接上脚本了~嘿嘿。
下面这个是备份网站和数据库的脚本:
#!/bin/bash
#set -x
time=`date +%y%m%d`
#下面是备份mysql
[ ! -e /backup/sqltmp ] && mkdir -p /backup/sqltmp #创建临时备份mysql目录
[ ! -e /backup/backsql ] && mkdir -p /backup/backsql #创建mysql备份的存放目录
cd /backup/sqltmp
sql=`mysqlshow -u用户名 -p密码 |grep -v + | grep -ev “data|information|mysql|test” | awk {‘print $2′}` #查询mysql数据库里出系统数据以外的网站数据库,这里可以根据需要修改
for sqlname in $sql
do
mysqldump -u用户名 -p密码 $sqlname > $sqlname.sql
done
tar zcvf backsql.$time.tar.gz *.sql
rm -rf *.sql
mv * ../backsql/.
cd ..
rm -rf sqltmp
#下面是备份网站
[ ! -e /backup/webtmp ] && mkdir -p /backup/webtmp #创建临时备份web文件目录
[ ! -e /backup/backweb ] && mkdir -p /backup/backweb #创建web文件备份的存放目录
cd /backup/webtmp
tar zcvf backweb.$time.tar.gz /home/*
mv * ../backweb/.
cd ..
rm -rf webtmp
下面这个是上传到通过ftp把备份网站上传到godaddy空间上的脚本:
#!/bin/bash
backsql=`cd /backup/backsql;ls -r backsql* | head -1` #因为每天都备份文件取最新的那个
backweb=`cd /backup/backweb;ls -r backweb* | head -1`
ftp -n<<eof
open ip #这里写godaddy空间的ip
user ftp用户名 ftp密码
binary
cd /back/ #备份文件要存放的ftp上的路径
lcd /backup/backsql/ #备份mysql文件本地存放路径
prompt
mput $backsql
lcd /backup/backweb/ #备份web文件本地存放路径
mput $backweb
close
bye
eof
然后把这两个脚本做个crontab计划任务就实现每天定时异地备份了,而且省时省力省钱。
[root@90itt.com ~]# crontab -e
01 0 * * * /root/backup.sh
0 5 * * * /root/ftp.sh
你总不能天天去下载吧?这带宽可受不了,就算是带宽充足,说不定vps哪天也让你给下载挂了。
ok~切入正题,先说这个免费备份的问题,实际上也不免费,只是有个前提,那就是你在godaddy.com的买的有域名,大家都知道在godaddy上买域名可以免费申请空间的,对于不用这东西的来说实在是太浪费了,所以今天的主题就是针对那些在godaddy买过域名有免费空间的盆友(在godaddy有域名没申请空间的可以去问问度娘谷哥)
那我们备份vps的原理就是利用shell脚本备份网站以及数据库,然后通过ftp脚本吧备份文件上传到godaddy的免费空间,简单吧。
那我就直接上脚本了~嘿嘿。
下面这个是备份网站和数据库的脚本:
复制代码 代码如下:
#!/bin/bash
#set -x
time=`date +%y%m%d`
#下面是备份mysql
[ ! -e /backup/sqltmp ] && mkdir -p /backup/sqltmp #创建临时备份mysql目录
[ ! -e /backup/backsql ] && mkdir -p /backup/backsql #创建mysql备份的存放目录
cd /backup/sqltmp
sql=`mysqlshow -u用户名 -p密码 |grep -v + | grep -ev “data|information|mysql|test” | awk {‘print $2′}` #查询mysql数据库里出系统数据以外的网站数据库,这里可以根据需要修改
for sqlname in $sql
do
mysqldump -u用户名 -p密码 $sqlname > $sqlname.sql
done
tar zcvf backsql.$time.tar.gz *.sql
rm -rf *.sql
mv * ../backsql/.
cd ..
rm -rf sqltmp
#下面是备份网站
[ ! -e /backup/webtmp ] && mkdir -p /backup/webtmp #创建临时备份web文件目录
[ ! -e /backup/backweb ] && mkdir -p /backup/backweb #创建web文件备份的存放目录
cd /backup/webtmp
tar zcvf backweb.$time.tar.gz /home/*
mv * ../backweb/.
cd ..
rm -rf webtmp
下面这个是上传到通过ftp把备份网站上传到godaddy空间上的脚本:
复制代码 代码如下:
#!/bin/bash
backsql=`cd /backup/backsql;ls -r backsql* | head -1` #因为每天都备份文件取最新的那个
backweb=`cd /backup/backweb;ls -r backweb* | head -1`
ftp -n<<eof
open ip #这里写godaddy空间的ip
user ftp用户名 ftp密码
binary
cd /back/ #备份文件要存放的ftp上的路径
lcd /backup/backsql/ #备份mysql文件本地存放路径
prompt
mput $backsql
lcd /backup/backweb/ #备份web文件本地存放路径
mput $backweb
close
bye
eof
然后把这两个脚本做个crontab计划任务就实现每天定时异地备份了,而且省时省力省钱。
复制代码 代码如下:
[root@90itt.com ~]# crontab -e
01 0 * * * /root/backup.sh
0 5 * * * /root/ftp.sh
上一篇: ssh连接超时解决方法
下一篇: MySql || 快速创建100w条记录
推荐阅读
-
linux下Vps自动备份web和mysql数据库的脚本
-
linux下实现VPS免费备份脚本
-
Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本
-
Linux下使用Shell脚本实现ftp的自动上传下载的代码小结
-
Linux下实现SNMP一键安装的Shell脚本
-
Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享
-
linux下采用shell脚本实现批量为指定文件夹下图片添加水印的方法
-
使用Python编写一个在Linux下实现截图分享的脚本的教程
-
linux下实现ftp自动备份shell脚本
-
Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤