关于java:站点迁移指北

61次阅读

共计 3348 个字符,预计需要花费 9 分钟才能阅读完成。

后面的话】因为服务器快到期了,就从新另购了一台服务器。这边就来记录一下迁徙的过程和日常数据备份等等。

壹、站点概览

我的站点应用 halo 搭建的,次要波及到的中间件有:NginxMysql等;日常运行产生的数据有站点运行数据和资源数据,所以站点迁徙也会从这些方面着手。

贰、中间件迁徙

2.1、Nginx

其实 Nginx 的迁徙很简略,只须要在新的服务器中装置即可,而后迁徙 nginx.conf 配置文件。我的站点还用到https,所有在装置的时候要留神装置相应的模块以及证书的迁徙。

./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

2.2、Mysql

在新的服务器装置 Mysql 服务,而后导入 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 文件夹即可

肆、重新启动

配置域名解析和相应的安全策略以及装置 JDK 之后,你就能够重新启动 halo 服务就好,到这里站点迁徙工作就实现了。


前面的话

日常备份也就是利用的配置文件以及利用产生的必要数据的备份。我这边的计划是定时打包压缩之后发送到邮箱中。上面给出具体脚本:

装置配置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 邮箱 的证书即可。

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 公布!

正文完
 0