技术知识库

帮助中心 >  产品文档 >  云服务器 >  自动化异地备份工具:MySQL/网站备份至远程FTP

获取脚本

  • 如果您使用了lnmp.org一键脚本部署了服务器,直接到下载路径下找到lnmp1.4/tools/backup.sh

  • 如果仅想使用备份脚本,可以到GitHub下载。

备份前准备

1.将backup.sh放到要备份的服务器。

2.安装lftp,以CentOS为例,CentOS中安装软件用yum,Debian/Ubuntu替换为apt-get即可。

yum install lftp

3.准备FTP空间。


配置备份参数

打开backup.sh文件,编辑参数

vim ./backup.sh

设置以下参数

#备份目录,如不存在,将自动新建
Backup_Home="/home/backup/"

#mysqldump路径,如果是用lnmp.org一键安装包部署的lnmp环境,则无需更改
MySQL_Dump="/usr/local/mysql/bin/mysqldump"

#要备份的目录,支持多目录,多目录间用空格分开
Backup_Dir=("/home/wwwroot/y2z.top" "/home/wwwroot/domain.com")

#要备份的数据库,支持一次备份多数据库,只写库名即可,多个数据库用空格分开
Backup_Database=("mydb" "mydb2")

#MySQL用户名和密码
MYSQL_UserName='root'
MYSQL_PassWord='yourrootpassword'

#FTP设置,0为开启,1为关闭,关闭之后仅能实现本地备份
Enable_FTP=0

#设置FTP地址,用户名密码等信息
FTP_Host='1.2.3.4'
FTP_Username='ftpUser'
FTP_Password='yourftppassword'
#FTP要备份到FTP的目录,此目录需提前新建
FTP_Dir="backup"
试运行
bash backup.sh 
Backup website files...
Backup Databases...
Delete old backup files...
Uploading backup files to ftp...
Usage: rm [-r] [-f] files...                             
Usage: rm [-r] [-f] files...
complete.

显示备份complete即备份成功。查看FTP服务器是否有备份的数据库和程序文件



设置计划任务

#编辑/etc/crontab文件vim /etc/crontab

如果没有crontab文件,可能是系统过于精简,运行命令安装crontab即可

yum install vixie-cron
yum install crontabs

vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

设置每天23:30分执行备份脚本

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
30 23 * * * root /bin/bash /home/backup.sh

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: