zoukankan      html  css  js  c++  java
  • 站点迁移指北

    前面的话】由于服务器快到期了,就重新另购了一台服务器。这边就来记录一下迁移的过程和日常数据备份等等。

    壹、站点概览

    我的站点使用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 发布!

  • 相关阅读:
    注册登录过程点滴(一):初始的想法分享是王道
    根据Cron表达式,通过Spring自带的CronSequenceGenerator类获取下次执行时间
    解决jqGrid中,当前页一直显示为0的问题
    使用JDK自带功能,实现一个简单的Web Service接口发布
    Linux 僵尸进程 ( Zombie or defunct )
    C语言赋值操作符
    面试题 ( ++a )和( a++ )
    关于学习Linux的经典书籍
    C语言中的 sizeof 问题
    条件变量 pthread_cond_wait ()
  • 原文地址:https://www.cnblogs.com/eelve/p/14221088.html
Copyright © 2011-2022 走看看