前几天给服务器装了LNMP一键包作为运行环境,相比面板少了自动备份等功能,查到可以将FTP挂在为本地目录,就尝试了一下。
首先给服务器安装软件 curlftpfs

dnf -y install epel-release
# CentOS 的源里没有 curlftpfs,需要先安装 epel-release

dnf -y install curlftpfs
# 安装 curlftpfs

curlftpfs 192.168.1.1 /path -o user=username:password
# 挂载,path为挂载在本地的目录,username为FTP用户名,password为FTP密码

umount /path
# 取消挂载


创建需要用到的目录

mkdir /home/backup
#备份目录

mkdir /home/backup/ftp
#FTP挂载目录

mkdir /home/backup/local
#本地备份目录

mkdir /home/backup/local/database
#本地数据库文件备份目录

mkdir /home/backup/local/sitefile
#本地网站文件备份目录

curlftpfs 192.168.1.1 /home/backup/ftp -o user=username:password
#挂载FTP目录至本地,将192.168.1.1替换为Ftp服务器地址,username替换为FTP用户名,password替换为FTP密码

mkdir /home/backup/ftp/backup
#FTP备份目录

mkdir /home/backup/ftp/database
#FTP数据库文件备份目录

mkdir /home/backup/ftp/sitefile
#FTP网站文件备份目录

创建脚本文件/home/backup/backup.sh内容如下

#!/bin/bash

nowDate=$(date +%Y%m%d_%H%M%S)
#用变量保存当前时间以便统一文件名中的时间

mysqldump -uUsername -pPassword Database | gzip > /home/backup/local/database/Db_cwlog_${nowDate}.sql.gz
#备份数据库,将Username替换为数据库用户名、Password替换为数据库密码、Database替换为数据库名

tar -zcPf /home/backup/local/sitefile/Site_cwlog_${nowDate}.tar.gz /home/wwwroot/cwlog.net
#打包网站目录

curlftpfs 192.168.1.1 /home/backup/ftp -o user=username:password
#挂载FTP目录至本地,将192.168.1.1替换为Ftp服务器地址,username替换为FTP用户名,password替换为FTP密码

cp /home/backup/local/database/Db_cwlog_${nowDate}.sql.gz /home/backup/ftp/backup/database/Db_cwlog_${nowDate}.sql.gz
#复制数据库文件至FTP目录

cp /home/backup/local/sitefile/Site_cwlog_${nowDate}.tar.gz /home/backup/ftp/backup/sitefile/Site_cwlog_${nowDate}.tar.gz
#复制打包的网站文件至FTP目录

umount /home/backup/ftp
#卸载FTP目录

最后一步,使用crontab创建计划任务

在SSH终端执行crontab -e,进入编辑器在文件末尾新建一行输入30 01 * * * /bin/sh /home/backup/backup.sh

TIM截图20200127180016.png

Ctrl + o写入文件

TIM截图20200127180043.png

Ctrl + m + a确认写入

TIM截图20200127180119.png

Ctrl + x退出编辑器

TIM截图20200127180146.png

备份脚本将在每天凌晨01:30执行。

标签: none

添加新评论