Linux网站及数据库自动本地备份并FTP上传怎么实现
更新:HHH   时间:2023-1-7


本篇内容主要讲解“Linux网站及数据库自动本地备份并FTP上传怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux网站及数据库自动本地备份并FTP上传怎么实现”吧!

准备工作:
需要提前在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网站及数据库自动本地备份并FTP上传怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

返回开发技术教程...