当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪VPS主机上备份网站和数据库的简单方法       现在看到越来越多的VPSer开始使用VPS,在使用VPS的时候一个很重要的任务就是VPS提供备份,虽然一些IDC也提供VPS的备份服务,但要不就是收费,都不太适合我们这些VPSer们使用。 今天介绍一.........
    ▪linux下实现VPS免费备份脚本       有人说你怎么不备份呢?这个问题我也考虑过啊,其实你有没有想过对于这种国外的vps什么的,备份一下所有的网站怎么说也得百十兆吧。 你总不能天天去下载吧?这带宽可受不了,就算.........
    ▪Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本       准备工作: 需要提前在VPS安装好lftp,lftp功能上比较强大,CentOS直接执行:yum install lftp,Debian执行:apt-get install lftp 。 需要在VPS上创建/home/backup/ 目录,在FTP上创建backup目录。 如果VPS上数.........

[1]VPS主机上备份网站和数据库的简单方法
    来源: 互联网  发布时间: 2013-12-24

现在看到越来越多的VPSer开始使用VPS,在使用VPS的时候一个很重要的任务就是VPS提供备份,虽然一些IDC也提供VPS的备份服务,但要不就是收费,都不太适合我们这些VPSer们使用。

今天介绍一下简单的方法为自己的VPS备份。

1、使用putty登录VPS,这里不多介绍了。

2、备份网站目录:

代码如下:

[root@www ~]# cd /web/www //进入相应的目录
[root@www www]# tar zcvf vps.tar.gz vps //使用tar打包且压缩vps文件夹,压缩后的文件名为:vps.tar.gz
[root@www www]#

3、备份数据库:

方法一:使用PHPmyadmin备份数据库

方法二:使用mysqldump定时自动备份数据库

[root@www www]# vi backup-db.sh#!/bin/sh
/usr/local/mysql/bin/mysqldump -uroot -ppassword databasename > /web/www/db-backup/databasename$(date +"%Y%m%d").sql
rm /web/www/db-backup/databasename$(date -d -7day +"%Y%m%d").sql#上面语句删除7天前的备份

上述脚本中-u后接数据库用户名, –p后接数据库用户密码,databasename改成要备份的数据库名,也可以备份全部数据库将databasename修改为--all-databases,后面/web/www/db-backup/ 是备份的目录。

添加定时执行任务

[root@www ~]# crontab -e59 23 * * * /root/backup-db.sh
每天的23:59分会自动备份数据库,且生成的数据库压缩按日期命名
以上备份的信息,备份完了就赶快把备份下载到本地,毕竟,备份的数据都在VPS,不在身边。
>>转载请注明出处:VPS侦探

    
[2]linux下实现VPS免费备份脚本
    来源: 互联网  发布时间: 2013-12-24
有人说你怎么不备份呢?这个问题我也考虑过啊,其实你有没有想过对于这种国外的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

    
[3]Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本
    来源: 互联网  发布时间: 2013-12-24
准备工作:

需要提前在VPS安装好lftp,lftp功能上比较强大,CentOS直接执行:yum install lftp,Debian执行:apt-get install lftp 。

需要在VPS上创建/home/backup/ 目录,在FTP上创建backup目录。

如果VPS上数据库不多的话使用Godaddy的免费空间就可以(10GB空间,300GB流量),只要注册个域名就免费送。

下面将备份脚本进行部分注释:
代码如下:

#!/bin/bash
#Funciont: Backup website and mysql database
#Author: licess
#Website: http://lnmp.org
#IMPORTANT!!!Please Setting the following Values!
######~Set Directory you want to backup~######将下面的目录修改成自己要备份的目录,一般按我的都是在/home/wwwroot/下面所有直接写了需要备份的目录。可以继续再加:Backup_Dir5=你的目录 ,Backup_Dir后面的数字依次递增。如果不足4个,直接删除不需要的就可以,同时修改下面tar zcf 部分。

Backup_Dir1=vpser.net
Backup_Dir2=lnmp.org
Backup_Dir3=licess.org
Backup_Dir4=jungehost.com

######~Set MySQL UserName and password~######设置MySQL的用户名和密码,最好是root,其他用户可能因为权限问题无法导出部分数据库。
MYSQL_UserName=root
MYSQL_PassWord=yourmysqlrootpassword

######~Set MySQL Database you want to backup~######设置要部分的数据库,可以继续再加:Backup_Database_Name5=数据库名,Backup_Database_Name后面的数字依次递增。
Backup_Database_Name1=vpser
Backup_Database_Name2=licess
Backup_Database_Name3=junge
Backup_Database_Name4=vpserorg

######~Set FTP Information~######设置用来存放备份数据的FTP信息
FTP_HostName=184.168.192.43 //FTP服务器的IP或者域名
FTP_UserName=vpsernet //FTP服务器用户名
FTP_PassWord=yourftppassword //FTP服务器用户对应的密码
FTP_BackupDir=backup //备份到FTP上的目录,需要提前创建好。

#Values Setting END!

TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz
TodayDBBackup=db-*-$(date +"%Y%m%d").sql
OldWWWBackup=www-*-$(date -d -3day +"%Y%m%d").tar.gz
OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql

tar zcf /home/backup/www-$Backup_Dir1-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir1 --exclude=soft
tar zcf /home/backup/www-$Backup_Dir2-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir2
tar zcf /home/backup/www-$Backup_Dir3-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir3 --exclude=test
tar zcf /home/backup/www-$Backup_Dir4-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir4

###上面为备份网站文件数据,因为我的网站比较零散,而且网站目录下面有些目录属于临时目录并不需要备份,所以可以在上面加上--exclude=不备份的目录。如果在前面加了Backup_Dir5=yourdir,则再加tar zcf /home/backup/www-$Backup_Dir5-$(date +"%Y%m%d").tar.gz -C
/home/wwwroot/ $Backup_Dir5 。如果多余则删除多余行。

/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name1 > /home/backup/db-$Backup_Database_Name1-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name2 > /home/backup/db-$Backup_Database_Name2-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name3 > /home/backup/db-$Backup_Database_Name3-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name4 > /home/backup/db-$Backup_Database_Name4-$(date +"%Y%m%d").sql

###上面为备份MySQL数据库,如果在前面加了Backup_Database_Name5=yourdatabasename,则再加/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name5 > /home/backup/db-$Backup_Database_Name5-$(date +"%Y%m%d").sql 。如果多余则删除多余行。

rm $OldWWWBackup
rm $OldDBBackup
###删除3天前的备份###

cd /home/backup/

###下面为自动上传部分,不得不说lftp很强大,抛弃ftp吧####
lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF
cd $FTP_BackupDir
mrm $OldWWWBackup
mrm $OldDBBackup
mput $TodayWWWBackup
mput $TodayDBBackup
bye
EOF

上文大部分都是以代码的形式表现出来,对于初学者可能比较难理解,一看到就懵啦,还是认真学习就一定能够有收获,希望上文中讲到的内容对大家能够有所帮助。

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3