【前面的话】因为服务器快到期了,就从新另购了一台服务器。这边就来记录一下迁移的过程和平常数据备份等等。mysql
个人站点使用halo
搭建的,主要涉及到的中间件有:Nginx
、Mysql
等;平常运行产生的数据有站点运行数据和资源数据,因此站点迁移也会从这些方面着手。nginx
其实Nginx
的迁移很简单,只须要在新的服务器中安装便可,而后迁移nginx.conf
配置文件。个人站点还用到https
,全部在安装的时候要注意安装相应的模块以及证书的迁移。spring
./configure --prefix=/usr/local/nginx --add-module=../ngx_cache_purge-1.3/ --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module
在新的服务器安装Mysql
服务,而后导入sql文件便可:sql
mysqldump -u$db_user -p$db_password $db_name | gzip > /home/firbackup/halodb.sql.gz
对于资源数据,主要是halo
产生的主题以及上传的文章的图片等等。就直接采用压缩打包,而后发送到新服务器再解压便可。数据库
tar czvf /home/firbackup/halo.tar.gz /root/.halo
#若是在同一个内网,记得使用内网ip,速度会更快哦 scp halo.tar.gz root@ip.ip.ip.ip:/root/
而后再解压到/root/.halo
文件夹便可vim
配置域名解析和相应的安全策略以及安装JDK
以后,你就能够从新启动halo
服务就好,到这里站点迁移工做就完成了。安全
平常备份也就是应用的配置文件以及应用产生的必要数据的备份。我这边的方案是定时打包压缩以后发送到邮箱中。下面给出具体脚本:springboot
mailx
yum -y install mailx
vim /etc/mail.rc #添加以下配置 set ssl-verify=ignore set nss-config-dir=/root/.certs/ #使用命令find / -name "cert*.db" 查找位置(根据自身系统而定) #weikeyi 发送email的设置 set from=youremail@163.com #163邮箱帐号 set smtp=smtps://smtp.163.com:465 ###smtp服务商#端口465#smtps协议 set smtp-auth-user=youremail@163.com #与上邮箱相同 set smtp-auth-password=yourpasswd #本身的受权码#非邮箱密码 set smtp-auth=login
若是在测试执行脚本,发现发送报错的话,那就是证书有问题,只须要在上面提到的/root/.certs/
文件夹中放置163邮箱
的证书便可。bash
Resolving host smtp.163.com . . . done. Connecting to 220.181.12.11:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 236028/17228757 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.16:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 6966/507305 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.11:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 324/22426 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.14:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 48/2440 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.17:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 342/10021 . . . message not sent.
#!/bin/bash #firbackup 文件和 and database ###################删除halo备份################# rm -fr /home/firbackup/halo_$(date -d '7 days ago' +%Y%m%d).tar.gz ###################备份halo################# tar czvf /home/firbackup/halo_$(date +%Y%m%d).tar.gz /root/.halo echo 'halo备份的下载地址:http://eelve.com/bp/'halo_$(date +%Y%m%d).tar.gz >> /home/firbackup/info_$(date +%Y%m%d).txt ###################删除备份数据库#################### rm -fr /home/firbackup/halodb_$(date -d '7 days ago' +%Y%m%d).sql.gz ###################备份halodb数据库#################### db_user="root" #输入你的数据库用户名 db_password="root" #输入你的数据库密码 db_name="halodb" #输入你要备份的数据库名 mysqldump -u$db_user -p$db_password $db_name | gzip > /home/firbackup/halodb_$(date +%Y%m%d).sql.gz echo 'halo数据库备份的下载地址:http://eelve.com/bp/'halodb_$(date +%Y%m%d).sql.gz >> /home/firbackup/info_$(date +%Y%m%d).txt ###################准备开始发邮件############### cd /home/firbackup/ ###################邮件发halo数据库备份############### mailx -v -s "请注意查收"$(date +%Y%m%d)"halo数据库的相关备份" -a halodb_$(date +%Y%m%d).sql.gz i@eelve.com<halodb_$(date +%Y%m%d).sql.gz
[root@fir /home]#crontab -e ##天天定时01:00:00 执行脚本 /home/firbackup.sh 0 1 * * * sh /home/firbackup.sh ##天天凌晨2点重启springboot应用 0 2 * * * sh /home/auto_restart_springboots.sh
到这里你只须要去邮箱中下载备份的数据就行了。另外邮箱发送附件是有大小限制的,每一个邮箱的具体状况不一。另外对于文章中的图片数据能够上传到又拍云
等云存储中便可。最后一句话道路千万条,数据备份第一条
。服务器
本文由博客一文多发平台 OpenWrite 发布!