Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本_Linux

准备工作:

需要提前在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

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

时间: 2025-01-29 12:31:21

Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本_Linux的相关文章

linux中自动定时备份Linux VPS/服务器网站文件及数据库且FTP上传至主机空间

第一.安装lftp环境   因为我们在上传FTP文件的时候需要用到lftp环境,不能确保所有的系统中都有已经安装,所以我们最好先重新安装.    代码如下 复制代码 #CentOS yum install lftp #Debian apt-get install lftp   第二.创建备份目录    代码如下 复制代码 /home/backup/   我们需要在VPS中创建备份目录,因为在执行备份的时候,是需要先备份到VPS本地,然后再从本地上传到远端FTP空间中.这个地址我们需要跟下面的脚本

构建高安全电子商务网站:网站文件及数据库自动本地/异地双备份

上一遍文章详细介绍了服务器安全方面,接下来继续介绍Linux服务器文件备份,数据库备份,数据安全 存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是重中之重的首要工作. 电子商务网站更加注重考虑数据安全,数据备份方案,包括本地备份.异地备份架构.其中Linux服 务器的备份方案非常多,本文介绍一个大众化适用的解决方案,通过编写Shell脚本来完成自动备份.本架构 包括备份网站文件.数据库,自动本地备份并FTP上传备份脚本,完成相应本地备份.异地备份,实现双层备 份解决方案

MYSQL数据库自动本地/异地双备份/MYSQL增量备份

构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是重中之重的首要工作. 电子商务网站更加注重考虑数据安全,数据备份方案,包括本地备份.异地备份架构.其中Linux服务器的备份方案非常多,本文介绍一个大众化适用的解决方案,通过编写Shell脚本来完成自动备份.本架构包括备份网站文件.数据库,自动本地备份并FTP上传备份脚本,完成相应本地备份.异地备份

Linux下自动备份网站及数据库并发送到邮箱/ftp

自动备份网站及数据库并发送到邮箱 1.SSH登录到VPS,进入到/home/backup目录,新建文件backup.sh,粘贴如下代码并保存: #!/bin/bash # 进入到备份文件夹 cd /home/backup # 创建存放备份文件和数据库的文件夹,并修改权限为777 mkdir -m 777 -p ./backup$(date +"%Y%m%d") # 将需要备份的文件复制到备份文件夹内 cp -r /home/wwwroot ./backup$(date +"%

Glances工具监控Linux VPS服务器资源状态的方法

第一.Glances网站  代码如下 复制代码 工具地址:https://github.com/nicolargo/glances 如果我们需要在Linux VPS服务器中安装Glances工具,那需要确保Python2.6以上.psutil2.0版本以上. 第二.Glances监控工具安装 1.自动安装  代码如下 复制代码 wget -O- http://bit.ly/glances | /bin/bash 我们在确保支持环境的时候,输入上面的一键包安装,可以自动部署Glances监控工具.

SSH密钥登录让Linux VPS/服务器更安全

  随着PHP越来越流行,Linux VPS/服务器的使用也越来越多,Linux的安全问题也需要日渐加强,如果你安装过DenyHosts并设置过邮件提醒,你每天可能会受到数封DenyHosts Report将前来破解SSH密码的IP加入/etc/hosts.deny. Linux SSH登录有两种: 1.使用密码验证登录 通常VPS或服务器开通后都是直接提供IP和root密码,使用这种方式就是通过密码方式登录.如果密码不够强壮,而且没有安装DenyHosts之类的防止SSH密码破解的软件,那么系

Linux VPS服务器内存不够用的优化方案

自从把我的一个网站搬家到linode 1G 的vps上后,总感觉有些不太正常.首先dnspod监控上显示网站有时能访问,有时不行.然后wp supercache插件在执行预缓存任务时经常失败后重启,邮件内容如"[http://www.111cn.net] 预缓存可能已失去响应.预缓存已经重新启动.".还有一个情况是linode有时会发来磁盘io使用高的报警邮件. 今天抽空检查了下服务器,发现一个现象是mysql进程频繁无故重启. 150424 17:41:14 [Note] Event

Linux Web服务器网站故障分析常用命令_Linux

Linux Web服务器网站故障分析,具体内容如下 系统连接状态篇: 1.查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 或 netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t&q

Linux VPS/服务器一键检测硬件配置、节点下载和IO读写脚本

我们在购买购买Linux vps.服务器之后首先需要检查的就是购买的机器与我们看到的方案.配置是不是一样,因为之前也存在过有购买到的机器与实际需要购买的并不是一样的配置.这个其中有可能商家搞错的问题,也有可能是配置缩水的问题.   对于Linux VPS主机实际性能我们当然肯定不能在数据上绝对体现,主要还是靠我们实际的使用过程可能遇到的稳定性.售后以及速度等等系列的问题.在这篇文章中,老左准备提供这个在网上看到的一键脚本,可以用来检测服务器的配置信息.随机节点.以及IO读写性能.   第一.一键