linux-firewall
防火墙配置
iptables
1 | #查看防火墙状态 |
防火墙端口配置需要放到哪两句之前
firewall
1 | # 添加端口7000-7005/17000-17005 |
1 | #查看防火墙状态 |
防火墙端口配置需要放到哪两句之前
1 | # 添加端口7000-7005/17000-17005 |
注意挂载操作不要在挂载目录里面操作
1 | #查看磁盘分区情况 |
mount: unknown filesystem type 'LVM2_member'
1 | fdisk -l |
fdisk -l
查看磁盘, 如果没有输出硬盘检查云盘状态是否已挂载
1 | Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors |
fdisk /dev/vdb
创建新分区依次输入“n”(新建分区)、“p”(新建主分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输入“wq”(保存分区表)
1 | Welcome to fdisk (util-linux 2.23.2). |
fdisk -l
检查
1 | Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors |
mkdir /data
如果没有创建挂载目录
mkfs.ext3 /dev/vdb1
格式化硬盘
mount /dev/vdb1 /data
设置挂载
vim /etc/fstab
设置开机启动自动挂载,fstab追加行
1 | /dev/vdb1 /data ext3 defaults 0 0 |
1 | # 分区 n ——>p ——>1 ——>回车 ——>回车 ——>w |
How to Mount a NTFS Drive on CentOS / RHEL / Scientific Linux
1 | <mapper namespace="com.willson.service.mapper.infrared.InfraredPictureMapper"> |
解释:
<id column="r_id" />
一般主键id,如果id存在相同(例如一对多时),id相同的就只会显示一个,因此在多一对多是,关联字段也要加别名
<association >
对应实体类object ,一对一
<collection >
对应list< Object > ,一对多
POLYGON
)注意事项:第一个点和最后一个点必须相同,因此矩形至少是5个点
1 | --添加面 |
表结构:
名 | 类型 |
---|---|
id | int |
shape | geometry |
name | varchar |
1 |
|
数据格式为
POLYGON((a a, b b,a a),(c c,d d, c c))
点坐标查询提示[Err] 3033 - Binary geometry function st_contains given two geometries of different srids: 0 and 1, which should have been identical.
分析:由于插入时的srid不一致,用SELECT * FROM infcamer WHERE ST_Contains(SHAPE, ST_GeomFromText( 'POINT(109.49097 19.06798)'))
查询时没有指定srid,所以报错提示有不同的srid
解决1:查询时指定srid例如:SELECT * FROM infcamer WHERE ST_Contains(SHAPE, ST_GeomFromText( 'POINT(109.49097 19.06798)',0))
解决2:插入时指定srid,指定的srid最好和原有记录的srid一致,这样就不会存在different srids: 0 and 1
,例如:SET @g = ST_GeomFromText('POINT(109.49097 19.06798)',0); INSERT INTO infcamer(shape) VALUES (@g);
在Navicat
客户端看不到完整数据,最好导出看
Mysql的空间扩展 较全,值得一看
MonItor(mon
) 监视器
维护集群状态的映射,包括监视器映射,管理器映射,OSD映射和CRUSH映射。这些映射是Ceph守护进程相互协调所需的关键集群状态。监视器还负责管理守护进程和客户端之间的身份验证。冗余和高可用性通常至少需要三个监视器。
Managers(mgr
) 管理器
守护程序(ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载。 Ceph Manager守护进程还托管基于python的插件来管理和公开Ceph集群信息,包括基于Web的Ceph Manager Dashboard和REST API。高可用性通常至少需要两个管理器。
OSDs(osd_ceph_disk
) 对象存储守护进程
存储数据,处理数据复制,恢复,重新平衡,并通过检查其他Ceph OSD守护进程来获取心跳,为Ceph监视器和管理器提供一些监视信息。冗余和高可用性通常至少需要3个Ceph OSD。
MDSs(mds
) Ceph元数据服务器
代表Ceph文件系统存储元数据(即,Ceph块设备和Ceph对象存储不使用MDS)。 Ceph元数据服务器允许POSIX文件系统用户执行基本命令(如ls,find等),而不会给Ceph存储集群带来巨大负担。
断电关机重启问题,如果是安装在容器里,面临自动挂载和卸载问题
如果挂载了关机时,容器先关闭,导致卸载出问题,一直关不了机
开机时重新挂载,看不到数据问题
集群部署,osd服务的 privileged: true
特权模式不支持,导致不能操作mount相关
采用docker plugin install rexray/rbd
插件模式挂载,服务的挂载目录不能更改,且外部需要安装ceph基本组件(考虑是否部分服务安装主机上,可解决123问题)
docker run -d --privileged=true -v /dev/:/dev/ -e OSD_DEVICE=/dev/sda ceph/daemon zap_device
并清理目录
三台机执行,其中MON_IP
替换本机ip
1 | docker run -d \ |
该部不能通过集群stack部署,因为--net=host
是指用主机网络
然后复制目录/dockerdata/ceph/data
到另一台机,复制/dockerdata/ceph/config/bootstrap*
到另一台机
启动第二台,如果有第三台,第三台同理
执行docker exec mon ceph -s
就可以看到两台了
1 | [root@environment-test1 ceph]# docker exec mon ceph -s |
添加osd,需要先在主机上添加一块新硬盘,执行lsblk
查看硬盘编号,硬盘非空,会启动报错,如何清空看磁盘格始化(删除所有分区),单个分区sda5
不成功,最后只好全磁盘格式化
1 | docker run -d \ |
执行docker exec mon ceph -s
就可以看到两台了和一个osd了,但是空间详情看不到,需要运行mds和rgw服务
1 | [root@environment-test1 ~]# docker exec mon ceph -s |
添加 mgr
1 | docker run -d \ |
添加 mds
1 |
|
添加 rgw
1 | docker run -d \ |
再次执行docker exec mon ceph -s
查看,就可以看到空间信息了
1 | [root@environment-test1 ~]# docker exec mon ceph -s |
测试发现只有一个osd挂载失败,因此在两台电脑都添加osd,并都挂载
首先查看登陆用户名和密码
1 | [root@environment-test1 ~]# cat /dockerdata/ceph/data/ceph.client.admin.keyring |
创建挂载目录
1 | [root@lfadmin mnt]# mkdir /mnt/mycephfs |
挂载
1 | [root@lfadmin mnt]# mount -t ceph 192.168.1.213,192.168.1.230,192.168.1.212:/ /dockerdata/cephdata -o name=admin,secret=AQCu98JblQgRChAAskEmJ1ekN2Vasa9Chw+gvg== |
设置开机自动挂载?
取消挂载umount /mnt/mycephfs/
如果被占用,关闭占用程序和窗口
docker exec ea8577875af3 ceph osd tree
1 | version: "3.6" |
swarm 不支持 privileged: true
特权模式,所以使用集群部署时,提示没有权限
查看分区情况lsblk
1 | [root@environment-test1 ~]# lsblk |
格式化磁盘mkfs.ext4 /dev/sda
,如果是格式化一个区,跟上特定数字,例如mkfs.ext4 /dev/sda5
1 | [root@environment-test1 ~]# mkfs.ext4 /dev/sda |
再次查看
1 | [root@environment-test1 ~]# lsblk |
CentOS Linux如何无损调整分区大小(XFS文件系统) : 没有做到无损
没找到无损调整的方法
https://www.linuxidc.com/Linux/2016-06/132270.htm
http://blog.51cto.com/happyliu/1902022
https://tobegit3hub1.gitbooks.io/ceph_from_scratch/content/usage/index.html
1 | # 查看当前路由表 |
1 | #和网络有关的配置文件 |
traceroute <ip>
网络测试、测量、管理、分析,官网
!H
不能到达主机
!N
不能到达网络
!P
不能到达的协议
!S
源路由失效
!F
需要分段
正常情况:
1 | [root@environment-test1 ~]# traceroute 4.2.2.2 |
有问题的情况:
1 | [root@lfadmin ~]# traceroute 4.2.2.2 |
ifconfig <网卡名字>
netstat -r
相似route
显示路由连接信息等
1 | [root@environment-test1 ~]# netstat -r |
host <域名>
相似nslookup <域名>
dns分析
1 | [root@environment-test1 ~]# host www.baidu.com |
nmcli
查看设备状态ip route show | column -t
查看路由
提示
1 | [root@lfadmin ~]# traceroute 4.2.2.2 |
解决原因,是网络配置文件uuid冲突,导致不能上网,修改即可
执行uuidgen ens33
生产新的830a6ae2-85fb-41e7-9e5d-60d084f56f5f
替换配置文件里面的
执行nmcli con | sed -n '1,2p'
进行验证
解决:移动说时该ip下的一些域名被idc封堵了,需要解封,或者备案,备了案就不回封堵了。
1 | # 能访问的热点 |
使用ping时都能ping通,tcp进行测试时,结果如下,一些能访问,一些不能访问:
1 | Query: tcp 27.176.159.182:8088 |
后面联系移动,移动给了一个公网测试ip,为了不影响原有网络,直接通过附加ip的方式配置:
登录FortiGate-100F
在网络->接口->物理接口
,编辑移动出口2 (port1)
打开附加的ip地址
的开关,新建,输入移动给的测试ip211.137.109.15/255.255.255.0
,勾选ping,方便测试。
保存之后通过ping 211.137.109.15就可以看到ping成功了,如果不成功稍等几分钟。
配置虚拟ip服务映射,在策略&对象->虚拟IP->新建
,新建一个test服务
1 | 名称: test |
配置转发规则也就是防火墙策略,在策略&对象->防火墙策略->新建
,新建一个test策略,这个页面策略的优先级是从上到下,如果没有匹配到就会被最后一个隐式拒绝
策略拒绝。
1 | 名称: test |
配置好后可以在第五步看到有一个关联项,现在测试tcp 211.137.109.15:8088,结果发现还是部分可以部分不可以,由此可以判断可能不是移动ip被封了
继续排查,用电脑直接连接移动专线的光猫的lan2口,提供服务,经全国访问测试tcp 211.137.109.15:8088,发现都能访问,基本排除了移动的问题,基本问题可以定位到FortiGate-100F的问题。
点击网络->诊断程序->Debug Flow
开启过滤,输入8088端口,点击开始debug flow
,分别抓取可以访问的手机的流量和不可以访问的手机流量。
可以访问的如下:
1 | Trace ID,时间设置,消息 |
不可以访问的如下
1 | Trace ID,时间设置,消息 |
对比发现
1 | #不可以访问的走到了l2t.root |
在FortiGate-100F的CLI
命令行执行get router info routing-table all
1 | FortiGate-100F # get router info routing-table all |
分析发现172.16.0.0
有两个路由地址,一个lan一个l2t.root
在界面网络->静态路由
里面也可以看到172.16.0.0
有两个路由地址,优先级且一样,这就导致了流量随机命中一个路由。修改优先级或禁用错误的路由,解决了。
数据源:
1 | { |
代码:
1 | //-----------------实体类----------------- |
Collectors.groupingBy(Function<? super T, ? extends K> classifier, Supplier<M> mapFactory, Collector<? super T, A, D> downstream)
有三个参数
如果不考虑顺序一个参数即可thematicMapList.stream().collect(Collectors.groupingBy(ThematicMap::getMonth));
第二个参数是指定容器:默认值是HashMap::new
,但是它会导致乱序,因此使用LinkedHashMap
最终数据结构
1 | { |
1 | #Maven 测试仓库命令,下载jar包,测试一般会报错,说没有权限 |
创建挂载目录mkdir -p v-nexus/data
并修改目录权限chown -R 200 v-nexus/data
创建部署脚本
1 | # 默认用户名admin/admin123 |
测试访问http://192.168.1.213:18081/
然后输入admin和admin123进行登陆即可
远程原remote url: http://maven.aliyun.com/nexus/content/groups/public
新建一个type:yum(proxy)
在新建一个组yum(group),添加刚刚的代理地址,同理,可以添加elpe,docker等其他仓库代理
复制生成的地址http://192.168.1.230:18081/repository/yum-public/配置在`nexus.repo`
执行vim /etc/yum.repos.d/nexus.repo
1 | [nexusrepo] |
yum clean all
rm -rf /etc/yum.repos.d/C*
epel源需要单独配置,直接用public不识别
执行vim /etc/yum.repos.d/nexus-epel.repo
1 | [nexus-epel-debuginfo] |
添加环境变量,新建系统环境变量Maven_HOME
值为解压路径,编辑path
环境变量添加%Maven_HOME%\bin
命令窗口测试mvn -v
,只支持cmd
修改apache-maven-3.5.4\conf\settings.xml
文件
1 | <!--jar本地缓存地址--> |
完整的setting.xml
设置
1 | <?xml version="1.0" encoding="UTF-8"?> |
在项目的pom.xml修改或添加如下配置
1 | <?xml version="1.0" encoding="UTF-8"?> |
编译在cmd执行mvn install
发布上传jar执行mvn deploy
,可以到nexus地址进行检查
使用私库下载和上传是一样的
Create Repository->maven2(proxy)
aliyun-proxy
设置阿里云url地址http://maven.aliyun.com/nexus/content/groups/public
maven-public
里面的group把刚刚创建的添加过去并移到maven-central上面maven-release
的hosted里面选择allow redeploy
create repository->maven2(hosted)
name:3rd_part
hosted:Allow redeploy
添加srd_part
到maven_public
如果没有groupId
最好统一为com.3rdPart
标注为第三方包
语法:
1 | mvn deploy:deploy-file \ |
实战
1 | mvn deploy:deploy-file \ |
上传jar包到私有maven仓库
1 | mvn deploy:deploy-file -Dfile=spring-boot-starter-druid-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-druid -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -DpomFile=spring-boot-starter-druid-0.0.1-SNAPSHOT.pom -DrepositoryId=nexus-snapshots -Durl=http://192.168.1.213:18081/repository/maven-snapshots/ |
本地安装jar包到本地maven仓库
1 | mvn install:install-file -Dfile=spring-boot-starter-druid-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-druid -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar |
创建roles:
id: nx-deploy
prlvlleges: nx-repository-view-*-*-*
创建用户:
ID: develop
roles: nx-deploy
1 | ## pom.xml里面设置 |
df -h
查看挂载使用情况
du -h --max-depth=1 /var/lib/docker/overlay2
查看某个目录下文件夹大小
查看docker 空间分布
1 | [root@environment-test1 ~]# docker system df |
查看空间占用细节docker system df -v
会显示
1 | [root@environment-test1 ~]# docker system df -v |
最后找到占用最多的容器,分析原因解决即可
参考:https://www.mydigit.cn/thread-399479-1-1.html
视频设置有两种一种通过硬盘录像机管理所有单个录像摄像头进行直播,二是单个摄像头进行直播流设置
查看登陆设备:高级->网络->端口->RTSP
应用:
1 | # 7544 为 RTSP端口,摄像头独立直播流配置 |
高级->网络->端口->SDK端口或服务端口
硬盘录像机:服务端口,应用hikvision_port=2004
其中2004为服务端口(也叫sdk端口)
摄像头:sdk端口,应用hikvision_video_username_password2 = 34,192.168.1.193,8000,admin,12345
其中8000为服务端口(也叫sdk端口)
1 | #tracks为回放 |
回访下载,然后实时播放增长的文件,可以用vlc播放,但是ckplayer播放不了,需要解码,可以用ffmpeg命令,因此做实施解码相对比较麻烦
1 | NativeLong hPlayback; |
2012年之前的设备支持老的取流格式,之后的设备新老取流格式都支持。
【老URL,小于64路的NVR或混合录像机的IP通道从33开始;大于等于64路的NVR的IP通道从1开始】
rtsp://username:password@<ipaddress>/<videotype>/ch<number>/<streamtype>
详细描述:
举例说明:
DS-9016HF-ST的IP通道01主码流:
rtsp://admin:12345@172.6.22.106:554/h264/ch33/main/av_stream
DS-9016HF-ST的模拟通道01子码流:
rtsp://admin:12345@172.6.22.106:554/h264/ch1/sub/av_stream
【新URL,通道号全部按顺序从1开始】
详细描述:
rtsp://username:password@<address>:<port>/Streaming/Channels/<id>(?parm1=value1&parm2-=value2…)
举例说明:
DS-9632N-ST的IP通道01主码流,:
rtsp://admin:12345@172.6.22.234:554/Streaming/Channels/101
DS-9632N-ST的IP通道01子码流:
rtsp://admin:12345@172.6.22.234:554/Streaming/Channels/102