LNMP 网站备份教程:一键备份脚本 backup.sh 的设置和使用教程

在使用 LNMP 一键安装包进行建站的时候,我们也需要时不时的备份网站数据。比如,使用 LNMP 自带的一键备份脚本 backup.sh,这个脚本是 LNMP 安装包默认提供的,位置是在 tools 这个文件夹下面,大家可以自行找到文件具体内容。因为是开源的,所以看看文件内容也就知道在做什么。本文分享一下 LNMP 一键包使用 backup.sh 这个脚本进行自动备份的教程,需要配合 crontab 使用。

相关教程:

一、LNMP 备份脚本 backup.sh 使用教程

下面的一些内容来自于 LNMP 官网的一些介绍,其实就是需要修改 backup.sh 这个脚本,可以使用 vim 编辑器打开,完整的 backup.sh 文件在文章下方也有。

备份脚本 backup.sh

备份脚本需要修改一下几个参数,需要配合 crontab 使用。

1、备份路径、目录等基本信息

Backup_Home="/home/backup/" #### 备份文件存放目录
MySQL_Dump="/usr/local/mysql/bin/mysqldump" #### mysqldump 路径,如果是 mariadb 替换 /usr/local/mysql/usr/local/mariadb
######~Set Directory you want to backup~######
Backup_Dir=("/home/wwwroot/bwg.net" "/home/wwwroot/bwg1.net") #### 要备份的目录,目录用双引号括起来,多个目录空格隔开,如前面的例子

2、要备份的数据库

######~Set MySQL Database you want to backup~######
Backup_Database=("bwgnet" "bwg1net") #### 要备份的数据库,前面有例子

######~Set MySQL UserName and password~######
MYSQL_UserName='root' #### MySQL root 账号
MYSQL_PassWord='yourrootpassword' #### MySQL root 密码

3、启用 FTP 备份

######~Enable Ftp Backup~######
Enable_FTP=0 #### 是否启用 FTP 备份,0 启用,非0 不启用
# 0: enable; 1: disable
######~Set FTP Information~###### FTP 账号信息
FTP_Host='1.2.3.4'
FTP_Username='bwg.net'
FTP_Password='yourftppassword'
FTP_Dir="backup" #### FTP 服务器上存放备份的目录

#Values Setting END!

默认备份文件保存 3 天,可以修改 backup.sh 里的 -3day 为你指定的天数。

二、使用 crontab 启用定期自动备份

参考《Linux Crontab 命令安装和使用教程:在 VPS 上设置定时任务》这篇教程,只需要添加一个 crontab 命令即可。

比如每天凌晨 3 点半自动备份一次:

30* * * sh ~/lnmp/tools/backup.sh

其中请把 ~/lnmp/tools/backup.sh 改成你自己的 backup.sh 文件目录。

此外,备份的频率、时间等也都可以自己修改。

更多备份方法:

三、搬瓦工新手教程和建站套餐

搬瓦工推荐方案

搬瓦工实时库存:https://stock.bwg.net

温馨提醒 如果您有选择困难症,直接选中间的 CN2 GIA-E方案,季付 $49.99,多达 12 个机房任意切换
方案内存CPU硬盘流量/月带宽机房价格购买
KVM
(最便宜)
1GB2核20GB1TB1GbpsDC3 CN2
DC8 ZNET
(购买后在后台迁移)
$49.99/年购买
KVM2GB3核40GB2TB1Gbps$52.99/半年
$99.99/年
购买
CN2 GIA-E
(最推荐)
1GB2核20GB1TB2.5GbpsDC6 CN2 GIA-E
DC9 CN2 GIA
日本软银 JPOS_1
荷兰 EUNL_9
$49.99/季度
$169.99/年
购买
CN2 GIA-E2GB3核40GB2TB2.5Gbps$89.99/季度
$299.99/年
购买
HK2GB2核40GB0.5TB1Gbps中国香港 CN2 GIA
日本东京 CN2 GIA
$89.99/月
$899.99/年
购买
HK4GB4核80GB1TB1Gbps$155.99/月
$1559.99/年
购买
OSAKA2GB2核40GB0.5TB1.5Gbps日本大阪 CN2 GIA$49.99/月
$499.99/年
购买
OSAKA4GB4核80GB1TB1.5Gbps$86.99/月
$869.99/年
购买
搬瓦工优惠码:BWHCCNCXVV搬瓦工购买教程:《2024 年最新搬瓦工购买教程和支付宝支付教程

选择建议:

  • 入门:洛杉矶 CN2 套餐,目前最便宜,可选 CN2 GT 机房,入门之选。
  • 推荐:洛杉矶 CN2 GIA-E 套餐,速度超快,可选机房多(DC6、DC9、日本软银、荷兰联通等),性价比最高。
  • 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。东京 CN2 GIA 套餐也是非常不错的高端选择。

搬瓦工新手教程

  1. 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程(推荐阅读)
  2. 搬瓦工购买教程:《2022 年最新搬瓦工购买教程和支付宝支付教程
  3. 搬瓦工优惠码:BWHCCNCXVV
  4. 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群
  5. 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?

搬瓦工补货通知

搬瓦工目前一共有四款限量版套餐,具体参考这里整理的搬瓦工所有限量版套餐汇总。下面是搬瓦工限量版套餐补货、上新、最新优惠通知。

如果来晚了已经缺货,可以关注搬瓦工补货通知:

搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群

四、LNMP 备份脚本 backup.sh 完整文件

下面是完整的 backup.sh 备份脚本,供参考。

#!/bin/bash

#Funciont: Backup website and mysql database
#Author: licess
#Website: https://lnmp.org

#IMPORTANT!!!Please Setting the following Values!

Backup_Home="/home/backup/"
MySQL_Dump="/usr/local/mysql/bin/mysqldump"
######~Set Directory you want to backup~######
Backup_Dir=("/home/wwwroot/vpser.net" "/home/wwwroot/lnmp.org")

######~Set MySQL Database you want to backup~######
Backup_Database=("lnmp" "vpser")

######~Set MySQL UserName and password~######
MYSQL_UserName='root'
MYSQL_PassWord='yourrootpassword'

######~Enable Ftp Backup~######
Enable_FTP=0
# 0: enable; 1: disable
######~Set FTP Information~######
FTP_Host='1.2.3.4'
FTP_Username='vpser.net'
FTP_Password='yourftppassword'
FTP_Dir="backup"

#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

Backup_Dir()
{
    Backup_Path=$1
    Dir_Name=`echo ${Backup_Path##*/}`
    Pre_Dir=`echo ${Backup_Path}|sed 's/'${Dir_Name}'//g'`
    tar zcf ${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.gz -C ${Pre_Dir} ${Dir_Name}
}
Backup_Sql()
{
    ${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $1 > ${Backup_Home}db-$1-$(date +"%Y%m%d").sql
}

if [ ! -f ${MySQL_Dump} ]; then  
    echo "mysqldump command not found.please check your setting."
    exit 1
fi

if [ ! -d ${Backup_Home} ]; then  
    mkdir -p ${Backup_Home}
fi

if [ ${Enable_FTP} = 0 ]; then
    type lftp >/dev/null 2>&1 || { echo >&2 "lftp command not found. Install: centos:yum install lftp,debian/ubuntu:apt-get install lftp."; }
fi

echo "Backup website files..."
for dd in ${Backup_Dir[@]};do
    Backup_Dir ${dd}
done

echo "Backup Databases..."
for db in ${Backup_Database[@]};do
    Backup_Sql ${db}
done

echo "Delete old backup files..."
rm -f ${Backup_Home}${OldWWWBackup}
rm -f ${Backup_Home}${OldDBBackup}

if [ ${Enable_FTP} = 0 ]; then
    echo "Uploading backup files to ftp..."
    cd ${Backup_Home}
    lftp ${FTP_Host} -u ${FTP_Username},${FTP_Password} << EOF
cd ${FTP_Dir}
mrm ${OldWWWBackup}
mrm ${OldDBBackup}
mput ${TodayWWWBackup}
mput ${TodayDBBackup}
bye
EOF

echo "complete."

未经允许不得转载:Bandwagonhost中文网 » LNMP 网站备份教程:一键备份脚本 backup.sh 的设置和使用教程