云服务器备份策略包括三个部分:

  1. 备份软件配置
  2. 备份数据库
  3. 备份演示的项目

目前想法比较简单。将软件配置(/etc)和数据库(/var/lib/mysql)压缩成zip压缩包,作为邮件附件发送到自己的邮箱;演示的项目通过git同步到Git@OSC或者GitHub。这里主要描述软件配置和数据库部分。

 

(1) 使用系统自带的mailx发送邮件,需要先配置mailx,在/etc/mail.rc文件末尾加入下列设置语句

set from=lmy0217@myluo.cn
set smtp=smtp.ym.163.com
set smtp-auth-user=lmy0217@myluo.cn
set smtp-auth-password=”****************”
set smtp-auth=login

(2) 创建/etc/backup文件夹作为存放备份脚本的地方,创建/var/backup文件夹作为存放备份压缩包的地方。在/etc/backup下创建(注意window与linux换行符的不同会引起脚本运行错误)下面两个文件

  • 备份脚本backup.sh

#!/bin/sh

sendto=”lmy0217@myluo.cn”
device_name=”CentOS”
title=${device_name}_backup_`date +%y%m%d%H%M%S`
filename=${title}.zip

cfg_dir=/etc/backup
message=${cfg_dir}/message.txt
backup_dir=/var/backup

zip -y -r ${backup_dir}/${filename} /etc /var/lib/mysql #备份的文件夹,注意压缩后的大小不要超过附件大小上限

mailx -v -s ${title} -a ${backup_dir}/${filename} ${sendto} < ${message}

  • 包含邮件内容的文件(随便写点什么)message.txt

CentOS(115.159.181.218) backup
/etc
/var/lib/mysql

(3) 在/etc/backup目录下输入./backup.sh运行备份脚本(记得使用chmod命令设置权限),等待文件夹压缩和邮件发送,最终可以在邮箱收到发送的邮件。

sp161116_232707

待改进的地方

  1. 数据库备份可以使用mysqldump而不是简单压缩文件;
  2. 可以设置定时任务定时运行备份脚本。

 

待改进……


2016年11月17日续

  • 使用mysqldump备份数据库的脚本/etc/backup/backup.sh

#!/bin/sh

sendto=”lmy0217@myluo.cn”
device_name=”CentOS”
dbuser=”root”
dbpassword=”*********”

title=${device_name}_backup_`date +%y%m%d%H%M%S`
dumpname=”mariadb.dump”
filename=${title}.zip

cfg_dir=/etc/backup
backup_dir=/var/backup
message=${cfg_dir}/message.txt

mysqldump -u${dbuser} -p${dbpassword} –all-databases > ${backup_dir}/${dumpname}
zip -y -r ${backup_dir}/${filename} /etc ${backup_dir}/${dumpname}

mailx -v -s ${title} -a ${backup_dir}/${filename} ${sendto} < ${message}

  • 用crond服务设置定时执行备份脚本。在/etc/crontab文件末尾添加下面一行指令(每周一4:00执行备份脚本)之后,重启crond服务。

0 4 * * 1 root /etc/backup/backup.sh