测试
# 172.16.1.183文件传输帮助文档
[root@nvidiatest ~ ]#cat /root/scp.sh
#!/bin/bash
#SYT-20220621
#使用方法
#/root/scp.sh 远端服务器编号198/201
#代码每2个月更更新一次
DATE=`date -d '-2month' +%Y%m%d`
#H5最新更新文件名称
H5_FILE=`cd /home/h5/h5online/curr ; ls -t|cut -d " " -f1 | grep online | head -n1`
#ANN文件最新更新名称
H5_ANN=`cd /home/sata2/annoy ; ls -t|cut -d " " -f1 | grep online | head -n1`
#ssh root@172.16.1.$1 <<remotessh
#DATE=`date +%Y%m%d`
#mkdir /home/h5/$DATE
#mv /home/h5/flask/* /home/h5/$DATE
#exit
#remotessh
#198、201保存上一个版本的源文件
ssh 172.16.1.$1 "mkdir /home/h5/$DATE;mv /home/h5/flask/* /home/h5/$DATE"
#传输代码文件到远端服务器
scp /home/h5/h5online/curr/$H5_FILE 172.16.1.$1:/home/h5/flask/h5
scp /home/sata2/annoy/$H5_ANN 172.16.1.$1:/home/h5/flask/ann
# docker服务器帮助文档,172.16.1.198和201在相同目录;前任同事写的,略作改动
root@docker2-server ~# cat /root/script/help.log
172.168.1.201 docker1 配置VIP 192.168.1.199
haproxy 配置文件位置 cat /etc/haproxy/haproxy.cfg
haproxy 日志位置 cat /var/log/haproxy.log
haproxy 前一天的日志 cat /var/log/haproxy.log.1
haproxy 访问量日志 cat /var/log/wc-haproxy.log #脚本统计
haproxy 访问错误日志 cat /var/log/haproxy-error.log #脚本统计
# 构建docker命令,每次操作用不到
docker run -itd --name xsflask2 -p 82:80 -p 8002:8000 -p 222:22 \
-v /var/www/flask:/var/www/flask:rw \
-v /home/h5:/home/h5:rw \
--dns=172.16.1.250 flask-zs:v1 bash
# 创建容器 新的端口后台 指定DNS 启动命令
#### xsflask1 容器内重启服务命令 #####
kill -9 `pgrep gunicorn |head -n1` ;cd /var/www/flask/ ;gunicorn --daemon -c gunicorn.py dicfile:app
# 启动nginx nginx
# 进入项目目录 cd /var/www/flask
# 启动gunicorn gunicorn --daemon -c gunicorn.py dicfile:app
# 后台 -c 指定配置文件 程序名
# dicfile文件位置 cat /var/www/flask/dicfile
# # gunicorn配置文件位置 cat /var/www/flask/gunicorn.py
# # loglevel = 'info' #日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
# # accesslog = '/var/log/gunicorn.access.log' 访问日志位置
# # errorlog = '/var/log/gunicorn.error.log' 错误日志位置
# # access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"' #设置gunicorn访问日志格式,错误日志无法设置
# #数据文件更改配置文件/var/www/flask/flask.conf
# #[db]
# #model = /home/h5/20200114.model #model文件位置
# #regcodeidx = /home/h5/v1.1.0/online20200724_regcode.h5 #h5文件位置
# #annoyidx = /home/h5/v1.1.0/annoy/online20200724.ann #ann文件位置
# #[msg] #日志模块名称
# #level = 40 #日志级别 10为debug
# #CRITICAL = 50
# #FATAL = CRITICAL
# #ERROR = 40
# #WARNING = 30
# #WARN = WARNING
# #INFO = 20
# #DEBUG = 10
# #NOTSET = 0
# nginx配置文件位置 cat /etc/nginx/nginx.conf
# nginx项目配置文件位置 cat /etc/nginx/sites-available/myproject 内含nginx 超时连接120设置
# nginx日志位置 cat /var/log/nginx/access.log
# nginx错误日志位置 cat /var/log/nginx/error.log
-
基本步骤就是每次传输完文件,进入docker容器,重启flask;随后调用端口测试
-
找张图片测试是否能够识别,能识别,测试正常;再用相同方式执行201
172.16.7.55的keepalived配置文件,只配置vrrp。
[root@DBCM51 /etc/keepalived ]#cat keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email { # 重新选举后,接受消息的邮箱,一般不设置,默认的。
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id DB_China # 标识这台机器ID,默认配置主机名DBCM51;这里不是
vrrp_skip_check_adv_addr # 所有报文都检查消耗性能;如收到的报文和上一个报文是同一个路由器则跳过检查报文中的源地址
vrrp_strict # 严格遵守VRRP协议,不允许状况:1,没有VIP地址,2.配置了单播邻居,3.在VRRP版本2中有IPv6地址
vrrp_garp_interval 0 # ARP报文发送延迟
vrrp_gna_interval 0 # 消息发送延迟
vrrp_mcast_group4 224.0.0.1 # 指定组播IP地址,默认值:224.0.0.18 范围:224.0.0.0到239.255.255.255
# vrrp_iptables # 避免生成iptables input链 规则,sip any 拒绝 dip any
}
# keepalived只能做到对网络故障和自身故障监控。vrrp_script可以添加脚本监控,监控其他服务
vrrp_script check_mysql {
script "/root/script/check_mysql.sh"
interrval 2 # 间隔两秒执行一次
weight 2 # 改变priority的值
# weight为正,脚本检测成功,weight会在主和备上都priority+weight;权限不变
# weight为负,脚本检测失败,weight会在失败的上-abs(weight);比如主,值变化,切换到备
}
vrrp_instance VI_1 { # 虚拟路由器名称,在一个keepalived可以启多个虚拟路由器,每个虚拟路由器的名字都不一样
state BACKUP # 虚拟路由初始状态,MASTER或BACKUP;默认主可设backup,并nopreempt;该值不决定身份,通过priority比较
interface eth0 # 绑定为当前虚拟路由器使用的物理接口,如:ens32,eth0,bond0,br0
virtual_router_id 54 # 每个虚拟路由器惟一标识,范围:0-255,同一组虚拟路由器的vrid必须一致
priority 150 # 当前物理节点在此虚拟路由器的优先级,范围:1-254,每个keepalived主机节点此值不同
advert_int 1 # vrrp通告的时间间隔,默认1s
nopreempt # 初始设置的主节点配置,从节点不用配置
authentication { # 认证机制
auth_type PASS # AH(不推荐)或PASS
auth_pass 1111 # 预共享密钥,仅前8位有效,同一个虚拟路由器的多个keepalived节点必须一样
}
virtual_ipaddress { # 虚拟IP
# 10.0.0.100 # 指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认为/32
# 10.0.0.101/24 dev eth1 # 指定VIP的网卡
# 10.0.0.102/24 dev eth2 label eth2:1 # 指定VIP的网卡label
172.16.7.54/24 dev eth0 label eth0:1
}
track_script { # 追踪vrrp_script中脚本
check_mysql
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律