转移程序到新服务器
提示:迁移前,想使用宝塔面板的,可以提前在新服务器上安装一下宝塔面板。

注意事项

迁移顺序如下,且必须按照该步骤进行:

第一步、通过下面的方法将老服务器文件转移到新服务器,但先不要启动新服务器的程序
第二步、文件转移完毕后,在老服务器运行命令pm2 kill && pm2 unstartup,关闭老程序
第三步、前往授权操作台efvcms.com登录账号,绑定新服务器ip
第4步、启动新服务器程序即可

迁移原服务器数据文件

首先迁移前,先使用SSH客户端登录到新服务器,安装一下rsync

#CentOS系统
yum install rsync -y

#Debian、Ubuntu系统
apt install rsync -y

1、迁移程序源码文件夹

先使用SSH客户端登录到新服务器,按要求使用命令:

#迁移命令,且9999为旧服务器端口,自行修改
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/home/express-ffmpeg /home

参数说明:

192.168.0.1为旧服务器ip地址。
/home/express-ffmpeg为旧服务器程序源码绝对路径,该处根据实际情况自行修改。
/home为你要将源码迁移到新服务器的文件夹路径,该处根据实际情况自行修改,也可以默认。

期间会要求你输入旧服务器密码,如果遇到提示yes/no,输入yes即可,由于切片大小、2台服务器之间连接情况等影响,迁移时间可能会很长,挂机即可,直到结束。

2、迁移ffmpeg文件夹

先使用SSH客户端登录到新服务器,按要求使用命令:

#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认。
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/ffmpeg /usr/local

期间会要求你输入旧服务器密码,如果遇到提示yes/no,输入yes即可。

3、迁移mongodb文件夹

先使用SSH客户端登录到新服务器,按要求使用命令:

#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/mongodb /usr/local

期间会要求你输入旧服务器密码,如果遇到提示yes/no,输入yes即可。

4、迁移nodejs文件夹

先使用SSH客户端登录到新服务器,按要求使用命令:

#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/nodejs /usr/local

期间会要求你输入旧服务器密码,如果遇到提示yes/no,输入yes即可。

5、迁移redis文件夹

先使用SSH客户端登录到新服务器,按要求使用命令:

#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/redis /usr/local

期间会要求你输入旧服务器密码,如果遇到提示yes/no,输入yes即可。

在新服务器上还原数据

注意:如果是带有GPU显卡的迁移,请联系我们协助安装Nvidia等环境。

1、安装依赖

先使用SSH客户端登录到新服务器,根据指定系统依次使用命令:

#CentOS 7系统
yum install epel-release -y
yum -y groupinstall "Development Tools"
yum -y install cairo cairo-devel kernel-headers

#Debian/Ubuntu系统
apt update
apt install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

2、还原mongodb

先使用SSH客户端登录到新服务器,依次使用命令:

useradd -M mongodb
chown -R mongodb:mongodb /usr/local/mongodb
wget --no-check-certificate https://download.zhuanma.org/moeapp/migrate/mongod.service -P /etc/systemd/system
systemctl start mongod
systemctl enable mongod

3、还原redis

先使用SSH客户端登录到新服务器,依次使用命令:

useradd -M redis
chown redis:redis -R /usr/local/redis
wget --no-check-certificate https://download.zhuanma.org/moeapp/migrate/redis.service -P /etc/systemd/system
systemctl start redis
systemctl enable redis

4、设置变量

先使用SSH客户端登录到新服务器,依次使用命令:

echo "export PATH=/usr/local/redis/bin:/usr/local/mongodb/bin:/usr/local/nodejs/bin:/usr/local/ffmpeg/bin:$PATH">>/etc/profile
source /etc/profile

5、停止不用的高级版

我们搬完家后,如果你旧服务器的高级版还没停止,则需要在不用的高级版服务器使用命令停止下:

pm2 kill
pm2 unstartup

停止后,再前往授权操作台efvcms.com登录账号,绑定新服务器ip

6、启动新转移的高级版

先使用SSH客户端登录到新服务器,按要求使用命令:

#进入到源码目录,本文默认/home/express-ffmpeg,自行根据实际情况修改
cd /home/express-ffmpeg
#启动
export PATH=python3/bin:$PATH && pm2 start ecosystem.config.js --env production
#开机自启
pm2 save
pm2 startup

最后可以检查下程序是否可以打开,如果还不能,可能是数据库损坏没启动成功,接下来运行命令:

mongod --dbpath=/usr/local/mongodb/data --repair
chown -R mongodb:mongodb /usr/local/mongodb
rm -rf /usr/local/mongodb/data/mongod.lock
systemctl restart mongod
pm2 reload all

该命令可以修复数据库,如果还没好,可直接联系我们解决该问题。