230810迁移服务器

起因

腾讯云过期了,而且首单优惠只能买一次,续费价格太高了。于是我切换到阿里云。 但是我并没有找到快速迁移的方法(在两台轻量应用服务器之间),所以我一边迁移,一边写此文章记录其过程与经验。

首先备份

我利用Xftp软件先把一些重要的文件备份到本地,一些文件由于过大无法直接在云服务器上面压缩(云服务器空间不够)

新服务器配置

首先一套sudo apt updatesudo apt upgrade -y更新。

ssh传输文件

然后我考虑将我的机器人整个文件夹迁移过来,尝试使用ssh从阿里云连接腾讯云,结果不行。反过来尝试,可以,于是:

# 从服务器拷贝文件到本地命令:
scp -r [user]@[remote_host]:[remote_dir] [local_dir]
# 从本地传输文件到服务器:
scp -r [local_dir] [user]@[remote_host]:[remote_dir]

连接成功后会提示你输入密码,如果失败则会报出 ssh: connect to host 43.142.190.190 port 22: Connection refused这种的错误。

重新安装halo

安装docker以及docker compose

根据dokcer安装文档以及docker compose安装文档安装。

安装mysql

由于halo使用的mysql,所以要重新安装mysql,直接一句: sudo apt install mysql-server 就安装完成了。

接着完成初始化操作:

以下代码中,只有中文需要自己修改

  1. 进入mysql:
sudo mysql
  1. 重置root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; 
  1. 刷新权限
FLUSH PRIVILEGES; 

如果需要远程登录则:

  1. 新建用户
create user 'root'@'%' identified by '密码';
  1. 授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  1. 刷新权限
FLUSH PRIVILEGES;
  1. 先退出mysql,然后停止运行
sudo systemctl stop mysql
  1. 再修改配置文件(因为它默认禁止远程登录)
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  1. 用#注释掉这个:
bind-address = 127.0.0.1

安装nginx proxy manager

使用ssh传输文件过去,然后直接运行 docker compose up -d

迁移yunzai-bot

由于文件太大,不如重新下载还快不少,于是我准备精简一下,正好做个小清理,把用不上的插件都删了。 du -h --max-depth=1查看当前文件夹内的各文件占用空间大小

由于.git文件太大,所以我打算重建仓库,直接删掉然后打包备份。

登录问题

得弄一个api

chromium问题

apt-get install ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils libxkbcommon0 -y

字体问题

apt install -y --force-yes --no-install-recommends fonts-wqy-microhei
apt-get install fonts-wqy-zenhei

ffmpeg配置

因为要弄点歌功能,所以就要安装ffmpeg,稳妥起见,使用aptitude安装

sudo aptitude install ffmpeg

接着使用whereis ffmpeg获取路径,填入配置

其他问题

防火墙

网站还是访问不了,在排除了解析的问题后,推测是防火墙的问题。使用sudo ufw allow [端口]命令,也可以直接使用sudo ufw disable关掉防火墙(反正阿里云自己有防火墙,而且我对自用的服务器的安全性要求不高)。

内存满

输命令的时候卡死,一些命令也没有反应,也不是网络的问题,一看内存占用1.9G/2.0G。但是为什么我在腾讯云上面就不会这样呢?

于是我使用free -h查看内存情况,发现腾讯云的swap为2G,阿里云的swap为0B。根据swap字面意思推测,应该是类似于虚拟内存的存在。

根据这篇文章,我设置了2G的swap空间,果然流畅了许多。

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo vim /etc/fstab
# 在末尾添加以下内容:
/swapfile swap swap defaults 0 0

SUFE大二在读