nvm介绍
nvm安装
- 脚本安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
- git安装
可能需要2.x以上版本
安装2.x版本git
git ssl报错
cd ~/
git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
git checkout v0.35.1
. nvm.sh
vim ~/.bashrc 文件结尾添加如下代码
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
PS:先安装git
nvm常用命令
npm install -g yarn #安装项目依赖
nvm install node # "node" is an alias for the latest version
nvm install 8.16.2 # or 6.10.0, 8.9.1, etc 安装指定版本
nvm ls-remote #列出可用版本
nvm alias default #设置默认版本
nvm use node #设置使用版本
nvm run node --version #查看运行版本
nvm exec 4.2 node --version #选择指定版本运行当前程序(子shell)
nvm which 5.0 #查看指定版本程序所在路径
pm2介绍
pm2安装
- 需要先安装node
npm install pm2 -g
#-g 全局安装
pm2常用命令
pm2 start ./server/app.js
pm2 start ./server/app.js -i 2 --name=publice
pm2 logs
pm2 stop all
pm2 delete all
pm2 reload all
pm2 completion install source ~/.bash_profile #命令补齐
pm2 save #保存服务,生成服务脚本
pm2 startup #添加服务到开机启动
NODE_ENV=serApiProd pm2 start ./bin/www -i 2 --merge-logs --output /home/tomcat/.pm2/logs/sdk_server-out.log --error /home/tomcat/.pm2/logs/sdk_server-error.log --name=sdk_server #多进程合并日志启动
PS:需要node v8以上版本
pm2日志管理
pm2 install pm2-logrotate #开启日志切割
设置格式
pm2 set pm2-logrotate:{paramName} {value}
命令设置具体的参数,支持的参数有:
l Compress:是否通过gzip压缩日志
l max_size:单个日志文件的大小,比如上图中设置为1K(这个其实太小了,实际文件大小并不会严格分为1K)
l retain:保留的日志文件个数,比如设置为10,那么在日志文件达到10个后会将最早的日志文件删除掉
l dateFormat:日志文件名中的日期格式,默认是YYYY-MM-DD_HH-mm-ss,注意是设置的日志名+这个格式,如设置的日志名为abc.log,那就会生成abc_YYYY-MM-DD_HH-mm-ss.log名字的日志文件
l rotateModule:把pm2本身的日志也进行分割 设置true不会对默认的日志分割,设置false会对默认日志进行分割(默认日志和新设置的日志只能生效一种)
l workerInterval:设置启动几个工作进程监控日志尺寸,最小为1
rotateInterval:设置强制分割,默认值是0 0 * * *,意思是每天晚上0点分割
0 0 * * * 对应 分钟 小时 日 月 周几(0-7),*表示通配符
16 * * * * 表示每小时第16分钟分割日志
0 16 * * * 表示每天16点0分分割日志
配置 例子
$ pm2 set pm2-logrotate:max_size 100M
$ pm2 set pm2-logrotate:retain 60
$ pm2 set pm2-logrotate:compress false
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true
配置完成后要重启pm2
pm2 restart all
查看配置
pm2 conf pm2-logrotate