迁移程序到新服务器运行

使用中如果需要将程序转移到新服务器的,可按步骤进行相关操作。

一定要根据下面步骤一步一步来,不要漏掉任何一个地方,不然会出问题。

且如果是GPU服务器,可在迁移之前联系我们协助安装相关显卡驱动。

迁移原服务器数据文件

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

#CentOS 7+、AlmaLinux、Rocky Linux系统
yum install rsync -y

#Debian、Ubuntu系统
apt install rsync -y

迁移程序源码文件夹

先使用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台服务器之间连接情况等影响,迁移时间可能会很长,挂机即可,直到结束。

迁移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即可。

迁移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即可。

迁移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即可。

迁移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即可。

在新服务器上还原数据

安装依赖

先使用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

还原mongodb

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

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

还原redis

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

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

设置变量

先使用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

关闭旧服务器的程序

我们搬完家后,如果你旧服务器的程序还没停止,则登录到旧服务器,使用命令:

pm2 kill
pm2 unstartup

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

启动新转移的程序

先使用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

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