前言
咕~ 听我解释,其实是最近比较忙咕~ 真的不是我懒咕~
最近几个一键安装包被投毒的事件搞得人心惶惶的,现在还是不建议大家使用这些一键安装包了,如要使用也请多多注意(有些老鼠屎也是真的该死)。这篇文章用到了军哥的备份脚本,再次对军哥表达一下感谢。 如有侵权,联系删除。
好了,让我们开始吧
环境要求
- 系统:Linux系统(为什么只有Linux呢。因为我没有钱买Windows Server(给我打钱))
- 无
rclone
安装
首先让我们安装rclone吧(如果你有了就跳过这一步咯)
这里你可以直接使用官方提供的一键安装脚本:
sudo -v ; curl https://rclone.org/install.sh | sudo bash
配置
rclone可以连接非常多的对象存储、网盘
我就不多赘述了,你们可以点击下面的网页查看
Rclone 安装配置教程 - 连接 OneDrive 和 Google Drive
备份脚本
首先让我们创造一个脚本:nano ~/backup.sh
然后将下面的代码复制到脚本中,或者直接使用下面的附件
记得修改你要保存的网站数据和数据库、数据库用户名密码和rclone命令
这里的数据库默认为是mariadb数据库,若你使用的是mysql数据库,则将第10行的MySQL_Dump="/usr/local/mariadb/bin/mysqldump"
改成MySQL_Dump="/usr/local/mysql/bin/mysqldump"
⟬点我点我⟭
#!/usr/bin/env 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/mariadb/bin/mysqldump"
######~Set Directory you want to backup~######
Backup_Dir=("/home/wwwroot/AAA" "/home/wwwroot/BBB")
######~Set MySQL Database you want to backup~######
Backup_Database=("AAA" "BBB")
######~Set MySQL UserName and password~######
MYSQL_UserName='user'
MYSQL_PassWord='password'
######~Enable Ftp Backup~######
Enable_FTP=1
# 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.xz
TodayDBBackup=db-*-$(date +"%Y%m%d").sql
# 这里默认在 主机端 保存7天的网页文件和31天的数据库文件
OldWWWBackup=www-*-$(date -d -7day +"%Y%m%d").tar.xz
OldDBBackup=db-*-$(date -d -31day +"%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 -Jcf ${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.xz -C ${Pre_Dir} ${Dir_Name}
# 记得修改此处的rclone存储名和储存位置
rclone copy ${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.xz Driver:/Backups
}
Backup_Sql()
{
${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $1 > ${Backup_Home}db-$1-$(date +"%Y%m%d").sql
# 记得修改此处的rclone存储名和储存位置
rclone copy ${Backup_Home}db-$1-$(date +"%Y%m%d").sql Driver:/Backups
}
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."
fi
脚本下载链接:下载链接
你也可以直接使用下面这行代码下载:wget -O ~/backup.sh
设置定时任务
现在大部分的Linux系统都自带了cron
所以我们就通过cron来设置定时任务吧
检查Cronta工具是否安装:crontab -l
检查crond服务是否启动:service crond status
如果系统没有自带的话可通过以下命令安装:
Centos 安装cron
yum install vixie-cron
yum install crontabs
Ubuntu安装cron
安装:apt-get install cron
启动:service cron start
编辑crontab
通过以下命令执行文字编辑器来设定时程表:crontab -e
时间格式如下:
f1 f2 f3 f4 f5 program
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
详情可以在菜鸟教程里查看:Runoob
编辑完成后
保存
然后就会按照你的设置定时的自动备份文件并上传到网盘了
耶~
Comments | NOTHING