Node.js+MongoDB上线测试环境部署

新增一个非root超级账户
$sudo vi /etc/sudoers
找到
//找到
# User privilege specification
root    ALL=(ALL:ALL) ALL
//在下面添加
ubuntu    ALL=(ALL:ALL) ALL
至此,新用户添完成。

基础的linux app: vsftpd, httpd, nodejs, pm2;

  • 1.检查当前版本
    这里写图片描述
  • 2.安装nodejs这里用了nvm做版本控制
    这里写图片描述
  • 3.安装vsftpd并启动然后设定ftp账户
sudo apt-get install vsftpd

这里写图片描述

  • 4.安装pm2,方便管理项目,自启动等等
    • 可以通过pm2 startup来实现开机自启动,
    • 通过pm2 save保存当前进程状态。
    • 通过pm2 startup [platform]生成开机自启动的命令。(记得查看控制台输出)
    • 将步骤2生成的命令,粘贴到控制台进行,搞定。
npm install -g pm2

这里写图片描述
为了方便客户采用淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

firewall: open ftp;

sudo apt-get install ufw

作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)
推荐设置 如有特殊需要

sudo  ufw allow port
//开启/禁用相应端口或服务举例
sudo ufw allow 80 允许外部访问80端口
sudo ufw delete allow 80 禁止外部访问80 端口
sudo ufw allow from 192.168.1.1 允许此IP访问所有的本机端口
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
//可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级)
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16

设置全部的ftp,httpd,nodejs,pm2 自动启动

  • 可以写到开机启动项里面,可以写一个脚本把要执行的命令放到下面目录中,要注意设置脚本的权限
/etc/init.d
sudo chmod xxx script.sh

安装MongoDB

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
看准自己的系统版本,这里是Ubuntu16
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get update
sudo apt-get install -y mongodb-org

也可以指定版本

sudo apt-get install -y mongodb-org=3.6.3 mongodb-org-server=3.6.3 mongodb-org-shell=3.6.3 mongodb-org-mongos=3.6.3 mongodb-org-tools=3.6.3

启动mongo,并设置随系统启动

sudo systemctl start mongod
sudo systemctl status mongod
sudo systemctl enable mongod

安装好以后我们进行数据库的定时备份与删除,上传到指定的ftp

  • 1.最好先检查一下系统的当前时间看时区是否一致用
timedatectl status

如果时区不对需要修改自己所在的时区

执行命令timedatectl set-timezone "Asia/Shanghai" 就可以将时区设为上海时区
amss@amss:~$ timedatectl status
      Local time: Tue 2018-03-13 16:50:28 CST
  Universal time: Tue 2018-03-13 08:50:28 UTC
        RTC time: Tue 2018-03-13 08:50:28
       Time zone: Asia/Shanghai (CST, +0800)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no
  • 2.备份脚本
    • 首先创建对应的备份文件夹注意设置权限
#!/bin/sh
# dump 命令执行路径,根据mongodb安装路径而定
DUMP=/usr/bin/mongodump
# 临时备份路径
OUT_DIR=/home/amss/mongodb/uncompress
# 压缩后的备份存放路径date
TAR_DIR=/home/amss/mongodb/compress
# 当前系统时间
DATE=`date +%Y-%m-%d`
# 数据库账号
//DB_USER=user
# 数据库密码
//DB_PASS=password
# 代表删除30天前的备份,即只保留近 30 天的备份
DAYS=30
# 最终保存的数据库备份文件
TAR_BAK="mongod_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
#$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d dbname -o $OUT_DIR/$DATE
$DUMP -o $OUT_DIR/$DATE
# 压缩格式为 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除 30 天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

exit

先进行脚本的测试,如果tar报错

tar: Removing leading `/' from member names

则在tar压缩文件的源路径前加上 -P

  • 3.通过ftp上传压缩后的文件到指定的文件夹
#!/bin/bash           
HOST=ip                   
USER=username                    
PASSWORD=password                   
ftp -inv $HOST <<EOF            
user $USER $PASSWORD
cd Ubuntu-mongoBackup/                  
lcd /var/mongodb-data-backup/compress             
mput *.tar.gz                     
bye                     
EOF
sudo service cron start 
  • 检查cron的状态
sudo service cron status 

这里写图片描述

  • 执行
crontable  -e
  • 每天凌晨3点执行脚本
    每天凌晨3点执行脚本
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值