服务器迁移中 ubuntu下node安装&node linux后台执行 & mongo数据库迁移
任务: 公司一台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配置,静态资源指定