deploy.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. npx vite build
  3. # 开发主机(开发环境服务器 有SSH权限至生产环境)
  4. DEV_HOST=root@dbo.fmode.cn
  5. # 生产主机(生产环境服务器)
  6. PROD_HOST=root@8.140.98.43
  7. # 部署路径
  8. DIR_SERVER=/opt/edu-textbook-server
  9. # 资源文件
  10. cp -rf config dist/server/
  11. cp package.json dist/server/
  12. cp config.js dist/server/
  13. cp keepalive.js dist/server/
  14. cd dist
  15. tar zcvf server.tar.gz ./server
  16. cd ..
  17. # 压缩部署
  18. ssh $DEV_HOST "mkdir -p $DIR_SERVER"
  19. scp dist/server.tar.gz $DEV_HOST:$DIR_SERVER/
  20. ssh $DEV_HOST "scp -r $DIR_SERVER/server.tar.gz $PROD_HOST:/opt/"
  21. ssh $DEV_HOST "ssh $PROD_HOST \"cd /opt/ && tar zxvf server.tar.gz && cp -rf server/* edu-textbook-server/\"" # 仅安装prod
  22. ssh $DEV_HOST "ssh $PROD_HOST \"cd /opt/ && cp server.tar.gz /var/www/edu-textbook\"" # 仅安装prod
  23. # 部署过程
  24. # ssh $DEV_HOST "mkdir -p $DIR_SERVER"
  25. # scp dist/server/server.js $DEV_HOST:$DIR_SERVER/
  26. # scp ./package.json $DEV_HOST:$DIR_SERVER/
  27. # scp ./config.js $DEV_HOST:$DIR_SERVER/
  28. # ssh $DEV_HOST "scp -r $DIR_SERVER $PROD_HOST:/opt/"
  29. # 启动过程
  30. ssh $DEV_HOST "ssh $PROD_HOST \"cd $DIR_SERVER && ls -lah\"" # 仅安装prod
  31. ssh $DEV_HOST "ssh $PROD_HOST \"cd $DIR_SERVER && npm i --omit=dev --force\"" # 仅安装prod
  32. ssh $DEV_HOST "ssh $PROD_HOST \"cd $DIR_SERVER && pm2 stop server.js\""
  33. ssh $DEV_HOST "ssh $PROD_HOST \"cd $DIR_SERVER && pm2 start server.js\""