侧边栏壁纸
  • 累计撰写 270 篇文章
  • 累计创建 141 个标签
  • 累计收到 16 条评论

目 录CONTENT

文章目录

云服务器迁移

Sherlock
2022-10-23 / 0 评论 / 0 点赞 / 501 阅读 / 0 字
温馨提示:
本文最后更新于2024-11-08,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

2023-10-09 记:

Ucloud 新用户有三年优惠,入手了一个。

2022-10-23 记:
阿里云新用户优惠活动购买的3年ECS服务器即将到期,新发现华为有新用户活动,118购买一个月送一年,果断入手。记录一下迁移过程~

0.前提

配置:2vCPUs | 4GiB
操作系统:CentOS 7.9 64bit
带宽:2 Mbit/s
带宽:1 Mbit/s

1.yum源切换

  • 1.华为云服务器安装后,centos源默认已切换为:repo.huaweicloud.com

    Ucloud 安装后也内置了自己的源mirrors.ucloud.cn,如果还需要切换到其他开源镜像可以这么操作:

    cd /etc/yum.repos.d/
    mkdir repo_bak
    mv *.repo repo_bak/
    # 配置使用网易和阿里的开源镜像repo文件
    wget http://mirrors.aliyun.com/repo/Centos-7.repo
    wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
    
  • 2.添加EPEL:华为云/Ucloud 服务器 安装后默认已内置

    如果需要手动安装:

    yum install -y epel-release
    # 还可以使用阿里开源镜像提供的epel源
    wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
  • 3.清除原有yum缓存 yum clean all

  • 4.刷新缓存yum makecache

2.中文显示(非必需)

#检查当前环境(如果已经是zh_CN.UTF-8则无需处理了)
localectl status
#安装中文字体
yum groupinstall "fonts" -y
#列出所有可用的公共语言环境的名称
locale -a |grep "zh_CN"
#设置locale,配置文件在 /etc/locale.conf(也可以直接修改配置文件)
localectl set-locale LANG=zh_CN.UTF-8
# 如果以上不生效
echo 'export LC_ALL="zh_CN.UTF-8"' >> /etc/profile
source /etc/profile
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
source /etc/locale.conf
#需要重启
reboot
#
localectl status
#如果还是无法显示中文,则可能是缺少中文字体
yum -y install fontconfig
fc-list :lang=zh

3.启动方式

# 查看默认启动方式是否是图形化界面
systemctl get-default

# 华为/Ucloud 镜像默认即为:命令行模式
# systemctl set-default multi-user.target

4.开启SSH

默认已开启,端口为:22,需要修改下

## 1、查看ssh服务是否启动
systemctl status sshd.service
## 2、修改配置
vi /etc/ssh/sshd_config
## 3、修改完配置后需要重新启动
systemctl restart sshd.service
## 4、设置开机启动(一般默认都已开启)
systemctl enable sshd.service
## 使用云服务器提供的安全组,无需配置防火墙(默认安全组只放行了端口22,也需要同步修改)

5.迁移系统配置

  • 系统配置

    环境变量脚本文件的执行顺序如下:
    /etc/profile->/etc/profile.d->/etc/bashrc->用户的.bash_profile->用户的.bashrc

    /etc/profile

    /etc/profile.d/

    /etc/bashrc

    ~/.bash_profile

    ~/.bashrc

    source /etc/bashrc

  • 环境变量

    x

  • Nginx

    已按 conf.d 目录拆分成小的配置,更便捷。

    yum install -y nginx
    # /etc/nginx 迁移配置文件
    # 迁移SSL证书 /etc/letsencrypt
    mkdir -p /etc/letsencrypt/
    systemctl enable nginx
    systemctl start nginx
    ln -s /etc/nginx /opt/nginx
    

    -- 后面还得安装certbot

  • crontab

  • JDK

    jdk17

    mkdir -p /opt/java
    cd /opt/java
    wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
    tar xzvf apache-maven-3.8.6-bin.tar.gz
    rm -rf apache-maven-3.8.6-bin.tar.gz
    wget https://download.oracle.com/java/17/archive/jdk-17.0.8_linux-x64_bin.tar.gz
    tar xzvf jdk-17.0.8_linux-x64_bin.tar.gz
    rm -rf jdk-17.0.8_linux-x64_bin.tar.gz
    ln -s /opt/java/jdk-17.0.8 /opt/java/jdk-17
    

    jdk8

    使用 azul openjdk
    https://www.azul.com/downloads/?package=jdk#download-openjdk

6.迁移数据库

6.1 mysql

  • 1、安装MySQL 8.0
    参考:CentOS 7 安装 MySQL 8.0及常见问题

  • 2、/etc/my.cnf

  • 3、halo等库迁移

    CREATE DATABASE `halodb` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 
    CREATE DATABASE `matomo`CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 
    CREATE DATABASE `sherlocky_prd`CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 
    CREATE DATABASE `ghost-blog-new`CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 
    SET GLOBAL log_bin_trust_function_creators=TRUE;
    

    sqlyog可对拷迁移数据

  • 4、触发器

  • 5、备份

  • 6、配置忽略大小写

    尽量在安装的时候,启动前就配置好(需要手动init,不能直接启动服务),中途修改会无法启动(注意备份数据)。

    [mysqld]
    lower_case_table_names=1
    

    注意:官网上明确指出mysql8.x只有在初始化时才能设置忽略大小写。地址:
    https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names。
    如果已经安装好,需要卸载掉重新安装,修改完my.cnf,先重新初始化,再启动,注意备份数据。。
    初始化命令:
    mysqld --user=mysql --lower_case_table_names=1 --initialize-insecure --datadir=/var/lib/mysql

7.迁移博客

  • halo

    mkdir -p /opt/halo && cd /opt/halo
    wget https://dl.halo.run/release/halo-1.5.2.jar
    wget https://dl.halo.run/release/halo-1.5.6.jar
    wget https://dl.halo.run/release/halo-1.6.1.jar
    ln -s /opt/halo/halo-1.5.2.jar /opt/halo/halo-latest.jar
    ...
    
  • .halo

  • halo.service --> /etc/systemd/system/halo.service

  • icon

    • favico:https://ghost.oss.sherlocky.com/Fo58f32lahSftASkDjWsWwmrCmw_-thumb
    • logo old(黑色): https://ghost.oss.sherlocky.com/FmSG3ngZuvRvQn7muJMRmUamjEti-thumb
    • logo new(蓝色#0396ff):https://ghost.oss.sherlocky.com/halo/sherlock-logo-blue@0.5x.png,蓝色(无字)https://ghost.oss.sherlocky.com/halo/sherlock-icon-qiye-weixin.png
  • 主题,使用主题Theme Joe3

    • 轮播文章上传封面图
    • 默认封面图:https://ghost.oss.sherlocky.com/halo/%E9%BB%98%E8%AE%A4%E5%B0%81%E9%9D%A2-350x200.png-thumb
    • 用户头像:https://ghost.oss.sherlocky.com/halo/sherlock-avatar.png
    • logo样式问题

      无字logo时不需要

      /** Theme Joe3 logo 样式修正 */
      .joe_header__above-logo img {
        height: 34px !important;
      }
      
    • 加载慢问题,要走CDN

      https://ghost.oss.sherlocky.com/halo/themes/theme-Joe3/templates

    • 主题下统计代码问题

      51la 配置外部JS链接(body)//js.users.51.la/20526105.js
      CNZZ开始收费了,干掉。。

    • 手动添加一个博文快捷编辑入口
      #修改 halo_data/themes/theme-Joe3/templates/post.html
      <span class="line">/</span>
      <span class="text" ><a style="color: var(--minor);" th:href="@{'/console/posts/editor?name='+${post.metadata.name}}" target="_blank">编辑</a> </span>
      
  • 文章编辑器

    • ByteMD

      可生成较好的TOC目录效果

    • 【插件】文章限制阅读

      内容分割:需要在显示与隐藏内容中间插入<separator></separator>的 HTML 标签即可。
      隐藏部分内容:按照<separator-start></separator-start>隐藏内容<separator-end></separator-end>的方式添加 HTML 标签即可。

      个人使用markdown编辑,需要保证编辑器不对此标签进行转义,目前应用市场中的 Markdown 插件都会对非安全 HTML 标签进行转义,可能导致功能无法使用。
      需搭配使用Willow Markdown 编辑器

  • 文件备份等

  • 升级

    • 1.5.6
    • 1.6.1
    • 2.x 升级前备份库,备份目录,使用新库,新目录.halo2
  • 统计信息

  • 文章作者头像还没有设置

    https://ghost.oss.sherlocky.com/halo/sherlock-avatar.png

  • 默认分类-文章处理,分类封面图

  • 附件分组怎么配置

  • 上传图片 后缀样式

  • SMTP设置

  • halo主程序附带的js、css能否走CDN

8.迁移其他程序

8.1 jenkins

ln -s /opt/java/jdk-17/bin/java /usr/bin/java

/root/update-center.json

安装配置参考:CentOS 安装 Jenkins 及 国内下载加速
使用备份 ThinBackup 恢复时尽量保持版本一致,如果恢复后看不到job,
可尝试修改:/var/lib/jenkins/users/users.xml 中带数字的名字部分,如果还不行,可尝试恢复整个 /var/lib/jenkins/ 目录。

手动安装gitee插件:https://help.gitee.com/devops/connect/Jenkins-Plugin/
手动关闭更新提醒

/opt/backup/jenkins
H 0 * * 1-7

8.2 Nginx

Nginx 顺道直接拆分为 conf.d 目录下单个配置文件,更直观,修改也更方便。

8.3 其他

  • /root/.acm

  • /root/.ssh

  • backup2oss

  • frp

    ln -s /opt/frp_0.38.0/ /opt/frp

    配置成服务化
    vi /etc/systemd/system/frps.service

    [Unit]
    Description = frp server
    After = network.target syslog.target
    Wants = network.target
    
    [Service]
    Type = simple
    ExecStart = /opt/frp/frps -c /opt/frp/frps.ini
    
    [Install]
    WantedBy = multi-user.target
    

    systemctl daemon-reload
    systemctl enable frps

  • certbot

    yum install certbot -y

  • certbot-alidns

  • certbot-alydns

    cd /opt
    git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au
    mv certbot-letencrypt-wildcardcertificates-alydns-au certbot-alydns
    cd certbot-alydns
    chmod 777 au.sh
    #修改au.sh 添加阿里云 AK/Secret
    
  • git

    yum install git -y

  • Python、Python3

    yum install -y python3

  • node

    yum install nodejs -y
    yum install npm -y

  • backup

  • bin

  • /etc/bashrc

    ## java
    export JAVA_HOME=/opt/java/jdk-17
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    export PATH=/opt/java/apache-maven-3.8.6/bin:$PATH
    
    ## aliyun
    export CERTBOT_ALI_KEY=
    export CERTBOT_ALI_SECRET=
    
    ## qiniu
    export QINIU_ACCESS_KEY=""
    export QINIU_SECRET_KEY=""
    
  • sherlock

  • docker

  • maven、gradle

    curl -s "https://get.sdkman.io" | bash
    source "$HOME/.sdkman/bin/sdkman-init.sh"
    sdk version
    sdk list gradle
    sdk install gradle 5.6.4

  • Go

    yum install -y golang

  • halo-es 搜索 数据库地址变更,halo2.x已自带搜索

  • ImageMagick

    yum install -y ImageMagick

  • ffmpge

    cd /opt/ && wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
    tar xf ffmpeg-release-amd64-static.tar.xz
    rm -rf rm -rf ffmpeg-release-amd64-static.tar.xz
    mv ffmpeg-6.0-amd64-static ffmpeg
    ln -s /opt/ffmpeg/ffmpeg /usr/bin/ffmpeg
    ln -s /opt/ffmpeg/ffprobe /usr/bin/ffprobe
    
  • Ucloud监控

    https://docs.ucloud.cn/umon/agent

    wget http://umon.api.service.ucloud.cn/static/umatest/uma-py3-1.2.3-1.x86_64.rpm
    rpm -ivh uma-py3-1.2.3-1.x86_64.rpm
    systemctl enable uma
    systemctl start uma
    

8.4 portainer

/opt/portainer/

8.5 1Panel

  • 电子书库calibre-web
备份目录:
/opt/1panel/apps/calibre-web/calibre-web/books
/opt/1panel/apps/calibre-web/calibre-web/config

9.监控和安全

  • 监控可以使用服务器官方提供的,再加上1Panel
  • Fail2ban 可以屏蔽暴力破解 IP(发现SSH经常被攻击)
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区