linux
linux指令
/是最高级目录,目录树的根节点
~是/root,为目录树根节点的子节点之一
cd .. 返回上级
1 | ls / -a |
1 | vim index.js |
按 i 进入编辑模式
按 esc 结束
按 :wq, 或 shift+zz 退出vim
按 :set nu 显示行号
按 :set nonu 取消显示行号
查看进程
1 | ps -ef |
找PID
- kill -1, 正常终止
- kill -9, 强制终止
1 | kill -1 PID |
1 | kill -9 PID |
SSH上传/下载文件
-P port 指定端口号,可以省略,用默认的
-r 全传选中的文件夹
username@servername
1
root@8.130.25.41
1 | # 上传文件夹到远程服务器 |
FTP上传/下载文件
FileZilla
创建并运行shell:
touch newShell.sh
vi newShell.sh
单击键盘i,开始编辑
编辑完成后,单击esc
保存并退出
输入:wq
使之可执行
chmod 755 newShell.sh
执行
./newShell.sh
iic-test-ssp /home/iic/ssp/run.sh:
1 | APP_NAME=/home/iic/ssp/iic-ssp-mgr-1.0.0.RELEASE.war |
upload-nginx-file.sh:
scp: secure copy
1 | !/usr/bin/expect |
杂记
Private Clouds: 租房子住
Public Clouds: 住宾馆
On-Premises: 自己买房子住
测试环境:京东私有云 第一家 不稳定
Private Clouds
为了一个客户单独使用而构建的
经济性:机房、设备、运行维护费用
安全性:数据由内部网络获取,第三方很难获取
正式环境:京东公有云 广州 成熟 稳定
Public Clouds
资源是在服务商的场所内部署。用户通过Internet互联网来获取这些资源的使用。
经济性:购买服务的费用
安全性:通过运营商网络访问,可以通过算法对数据加密
cd /home/iic
d ssp
ls
- run.sh 可执行文件
- logs
- .war 服务部署包
- checkJavaPid.sh 检查进程id
cat run.sh 运行脚本,启动服务
目前重启需要先checkJavaPid找到进程,再kill
每个服务写restart, stop
难点:
- 用脚本查到进程id
- kill -9 pid
05-19:
目标:
用一台机的shell去启动另一台机的shell
保证同步shell 实现,不可以异步
05-20:
进展:
成功实现用 iic-test-api 远程控制 iic-test-ssp, 可以在iic-test-api 运行 iic-test-ssp上的脚本
要设置ssh免密码登录
先在 iic-tes-api 上,
1
ssh-keygen -t rsa
保存密钥后,将passphrase设为空
将生成的id_rsa.pub文件拷贝到远程服务器的 ~/.ssh 目录下,此时需要远程服务器的 root 密码
scp /root/.ssh/id_rsa.pub root@172.23.19.16:~/.ssh
1
2
3
4
5
6
7
8
9
+ 注意:xshell中输入密码时虽然看似没反应,其实键盘正常工作!
+ 问题:为何使用的是对外的浮动IP,而不是对内的私有云内网IP?
+ 在远程服务器:append更新authorized_keys文件
```shell
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys注意:cat除了看文件,还能文件间传输数据
此时可以不输密码,访问远程服务器:
1
ssh root@172.23.19.16
并可以执行命令或shell:
1
2ssh root@172.23.19.16 "cd /test1;./newdir.sh"
ssh root@172.23.19.16 "cd /test1;ls"
05-24:
服务名 | SSH Server | Source files | Exec command |
---|---|---|---|
test-api | test-api | target/iic-appapi-webapi-1.0.0.RELEASE.war | nohup bash /home/iic/api/run.sh restart |
test-file | test-static | target/iic-file-web-1.0.0.RELEASE.war | nohup bash /home/iic/static/run.sh restart |
test-idr | test-idr | target/iic-analyze-web-1.0.0.RELEASE.war | nohup bash /home/iic/idr/run.sh restart |
test-msg | test-msg | target/iic-msg-webapi-1.0.0.RELEASE.war | nohup bash /home/iic/msg/run.sh restart |
test-safety | test-safety | target/iic-safety-service-1.0.0.RELEASE.war | nohup bash /home/iic/safety/run.sh restart |
test-ssp | test-ssp | target/iic-ssp-mgr-1.0.0.RELEASE.war | nohup bash /home/iic/ssp/run.sh restart |
test-stat | test-msg | target/iic-stat-web-1.0.0.RELEASE.jar | nohup bash /home/iic/stat/run.sh restart |
05-25:
测试环境思路:
- 维持现状
svn编译成功后,从
1 | /var/lib/jenkins/workspace/test-api/target/iic-appapi-webapi-1.0.0.RELEASE.war |
推到了
1 | /home/iic/api/iic-appapi-webapi-1.0.0.RELEASE.war |
正式环境思路:
- svn将某服务(例如ssp)编译后,统一推包到nginx机,并执行nginx机上的对应的run-ssp.sh restart
- run-ssp.sh restart中:
- 从nginx机推包到对应的ssp机
- 启动对应的ssp机上的run.sh restart
开始测试:
- 先将svn与各test机建立免密连接
- 在svn机上写run-ssp.sh restart来推包并启动ssp机上的run.sh restart
test-ssp.sh
1 | !/bin/bash |
nginx架构
nginx:
- 热部署
- 全天候
- 反向代理
- 负载均衡
https://juejin.cn/post/6844904144235413512
nginx 转发 <- 公网ip
内网:每一个服务都有独立的账号、密码
- api
- idr
- ssp
- static 文件中心
- safety 安全中心
部署:登录、上传.war、run
专门的部署机:
- upload
- run 参数,想run哪一台
- stop
- restart
远程登录
需要先输入账号密码 登录部署机, 再输入账号密码去操纵对应服务
备份: 将旧版本ssp备份到部署机 以便快速恢复系统
外界访问 用 浮动ip
内部访问 用 私有云ip
1 | # same origin |
测试 部署
测试:Jenkins
部署: 京东云
Jenkins连svn,获取源代码,再部署到linux服务器;起桥梁的作用
Jenkins:
- 免费开源的持续集成工具
- continuous integration