之前推荐过一款备份至GoogleDrive的一键备份脚本,但GoogleDrive并不是哪里都能访问到。之前使用Lnmp一键安装脚本部署了新服务器,所以这次的备份直接使用lnmp.org自带的一键备份脚本backup.sh进行备份。
获取脚本
- 如果您使用了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空间。
没有FTP空间?可以申请Openload免费网盘,支持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/yantuz.cn" "/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
wordpress 许多插件可以备份到云盘。
谢谢指路,改天试试
这个好啊,免去每次手动去备份数据库了 赞一个!
是啊,懒得手动备份呢