代码改变世界

服务器迁移中 ubuntu下node安装&node linux后台执行 & mongo数据库迁移

2020-06-04 15:58  AIF  阅读(276)  评论(0编辑  收藏  举报
任务: 公司一台windows服务器6.7日到期,需在6.4日完成到ubuntu的迁移(两个静态资源站点和一个爬虫),所需环境 node 6.10.2版本
迁移步骤:
 
1.拉代码,git获取最新的代码,这个没有问题
 
2.部署环境,安装node 6.10.2
       2.1 直接安装node 6.10.2版本,提示版本太久,装不了。命令: curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
            解决: 改nvm安装,参考   https://blog.csdn.net/geol200709/article/details/82117103
                         如果需要卸载以前的node,npm 参考: (注意文章里 sudo apt-get autoremove 这个命令不要执行,会害死人)  https://www.jianshu.com/p/53a1e12bb790
        2.2 安装完成后设置默认版本 nvm alias default v6.10.2,碰到新问题:xshell一旦退出,node就也退出了(输入 node -v 提示命令不存在)
            解决:将  source /data/soft/nvm/nvm.sh  # nvm下载的路径,我的是/data/soft/nvm/
                    添加进我们的.bashrc中,保存退出。输入命令 source .bashrc   # .bashrc 一般 cd ~ 进入
                    参考   https://zhidao.baidu.com/question/588421868002760245.html
       2.3 node 跑js爬虫进程在xshell关闭时也关闭了,网上的一般做法是
             一、nohup 放后台,比如 nohup node server.js > /data/logs/node_server.log   &   # 我这边试了没用,很奇怪
               二、npm下载forever模块, 参考  https://www.cnblogs.com/handongyu/p/6257380.html  # 下载太慢了,后来找到解决方法 
               解决: nohup node server.js > /data/logs/node_server.log   &  exit   #  加exit就可以了,很神奇,原因还不太清楚
                          nohup node timer.js -ts > /data/logs/node_timer.log   &  exit
                          参考   https://blog.csdn.net/feng2147685/article/details/104005560
  
3.迁移数据库,mogodb 3.0.4版本
         原服务器上有一个mongodb数据库spider,需要迁移整个database,表不多就三张表,数据量大概几百万(大型数据库库迁移就不要借鉴这里了)
         思路是: 利用 Mongo 3T工具在window上导出collections (我选择的是导出json,dmp会携带索引和老的用户名密码,新库这些需要新建),然后新库导入
                     但是创建数据库这些工具没有权限,所以需要登录mongo服务器上操作。
         3.1 老机器上,Mongo 3T工具导出spider库下的collections
         3.2 xshell登录ubuntu,创建新的database spider
              mongo --port 30001    # 没用默认端口27017,使用端口号30001  登录某个库 use xxx  ,   db.auth("myUserAdmin", "abc123" )
              use spider   # 创建spider数据库   
              db.createUser({user:'SpiderAdmin', pwd:'ManagerSpider',     "roles" : [{"role" : "dbAdmin", "db" : "spider"},{"role" : "readWrite", "db" : "spider"}]})
                 # 创建用户名和密码,以及指定权限 ,db.addUser('name','password');   这个方法过期了,角色的配置参考  https://blog.csdn.net/u010649766/article/details/78498130
        3.3  新机器上,Mongo 3T工具导入collections       
 
4.nginx配置,静态资源指定