定期备份站点、数据库、日志

“备份”这两个字的重要性,体现在很多方面。而对于个人建站而言,更多的用处是体现在“瞎折腾”、“动不动就rm -rf /* ”、“机器失联”、“硬盘故障”……有时候它的存在,可以省心不少。

环境

LNMP1.8+tools文件夹下的backup.sh脚本

修改配置

进入你的lnmp解压包文件夹下的tools文件夹,修改backup.sh文件

#!/usr/bin/env bash

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

#IMPORTANT!!!Please Setting the following Values!

Backup_Home="引号里填写备份存放的路径"
MySQL_Dump="/usr/local/mysql/bin/mysqldump"
######~Set Directory you want to backup~######
Backup_Dir=("需要备份的路径1" "备份的路径2" "以此类推……")

######~Set MySQL Database you want to backup~######
######和上面一样,多个就空格隔开
Backup_Database=("需要备份的数据库名") 

######~Set MySQL UserName and password~######
######如果上面备份多个数据,请选择root或者有足够读取权限的用户
MYSQL_UserName='对需要备份的数据库有足够权限的用户名' 
MYSQL_PassWord='对需要备份的数据库有足够权限的用户密码'

######~Enable Ftp Backup~######
Enable_FTP=1
# 0: enable; 1: disable
######~Set FTP Information~######
######FTP需要的话可以自行开启,并修改配置(我不需要就关闭了)
#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 -30day +"%Y%m%d").tar.gz#默认3天,这里我是改为保留30天
OldDBBackup=db-*-$(date -d -30day +"%Y%m%d").sql#同上,保留30天
……
……
……

设置定时任务

修改定时任务crontab -e ,添加任务23 1 * * * /你的lnmp解压后的文件夹路径/tools/backup.sh

这里我是设定每天凌晨1点23分执行备份任务,请根据自身需求自行更改。

附挂载OneDrive方法(Rclone)

 

为什么要这么做呢?举个栗子:RAID故障……因此,多地备份,对于建站或者其它存储领域而言,尤为重要。

同时这样做的好处是,你可以将上面backup.sh的Backup_Home填写为你挂载的OD路径,即备份到OneDrive上,可以减少磁盘空间的占用。

阅读剩余
THE END