分类 默认分类 下的文章

1.安装

wget https://github.com/emqx/emqx/releases/download/v4.3.12/emqx-centos8-4.3.12-arm64.zip

2.启动

    2.1 后台启动 emqx start

    2.2 控制台启动 ./bin/emqx console

3.配置

    EMQX 配置文件 etc/emqx.conf

    EMQX 默认 ACL 规则配置文件 etc/acl.conf

    EMQX 扩展插件配置文件 etc/plugins/*.conf

 

EMQX 默认提供 5 个 Listener,它们将占用以下端口:

端口 说明
1883 MQTT/TCP 协议端口
11883 MQTT/TCP 协议内部端口,仅用于本机客户端连接
8883 MQTT/SSL 协议端口
8083 MQTT/WS 协议端口
8084 MQTT/WSS 协议端口

 

 

认证: https://www.cnblogs.com/huangcw/p/12772280.html

 

pigz命令可以用来解压缩文件,最重要的是支持多线程并行处理,解压缩比gzip快。 pigz时间上比gzip快60%,同时CPU消耗则是gzip的好几倍,当然pigz的CPU使用率也是100%了 

在对压缩效率要求较高、但对短时间内CPU消耗较高不受影响的场景,使用pigz非常合适。

语法格式: pigz [参数] [文件]

常用参数:

-b  更改block size的大小 
-p  设置线程数 
-S  使用后缀.sss而不是.gz(用于压缩)
-d  或unpigz可以将压缩文件恢复为原始文件

参考实例

可以结合tar使用, 压缩命令:

[root@linuxcool ~]# tar -cvf - dir1 dir2 dir3 | pigz -p 8 > output.tgz

解压命令:

[root@linuxcool ~]# pigz -p 8 -d output.tgz

如果是gzip格式,也支持用tar解压: 

[root@linuxcool ~]# tar -xzvf output.tgz

 

1.描述类的可见性:

    1.1 + 表示public 公有的

    1.2 - 表示 private 私有的

    1.3 # 表示 protected 受保护的

    1.4 ~ default 包的默认属性

2.类与类之间的关系

    2.1 泛化: 表示类与类之间的继承关系,接口与接口的集成关系,类与接口的实现关系。

    2.2 实现: 表示一个class类实现interface(可以是多个)接口的能力

    

        

        3. 依赖: 对于两个相对独立的对象,当一个对象构造另一个对象,获取需要依赖另一个对象的服务时,这两个对象体现为依赖关系。

        

    

    4. 关联:对于两个相对独立的对象,当一个对象的实例和另一个对象的特定实例有固定的对应关系,这两个对象直接为关联关系。

        

 

        

    5.聚合:表示一种弱的拥有关系,A对象可以包含B对象但是B对象不是A的一部分。两个对象具有各自的生命周期

        

        

    6.组合: 是一种强的拥有关系,生命周期一致。

        

        

    

原因是 高级Mock 可以执行系统命令,如果恰好用的默认端口3000,并且没有关闭注册功能。很大概率会中招。

解决办法: 编辑 config.json

1.修改默认端口

2.关闭注册

3.关闭mock(看需求)

已经中招的清理步骤:

kill KaBot
killall -9 /tmp/moni.lod

killall -9 /tmp/gates.lod

killall -9 /usr/bin/bsd-port/getty/lock

rm -rf /tmp/moni.lod

rm -rf /tmp/gates.lod

rm -rf /etc/init.d/selinux
rm -rf /etc/rc1.d/S97DbSecuritySpt /etc/rc1.d/S99selinux
rm -rf /etc/rc2.d/S97DbSecuritySpt /etc/rc2.d/S99selinux
rm -rf /etc/rc3.d/S97DbSecuritySpt /etc/rc3.d/S99selinux
rm -rf /etc/rc4.d/S97DbSecuritySpt /etc/rc4.d/S99selinux
rm -rf /etc/rc5.d/S97DbSecuritySpt /etc/rc5.d/S99selinux
rm -rf /usr/bin/lsof /bin/ps /bin/ss /bin/netstat

mv /usr/bin/dpkgd/* /bin/

mv /bin/lsof /usr/bin/

参考:

https://github.com/YMFE/yapi/issues/2229

https://v2ex.com/t/787350

1,dd操作就是简单的按字节复制,什么分区表啊,MBR(master boot record)啊统统照搬;

1. 磁盘克隆
也就是把整个硬盘复制一份。当然你首先需要在计算机上在接上一块新硬盘,并让系统识别。例如这块硬盘可能被识别为/dev/sdb,原有硬盘叫/dev/sda. 然后你可以在linux命令行上简单地执行:
dd if=/dev/sda of=/dev/sdb
对就这么简单,此命令完成后,你的第二块硬盘上将有一个和第一块硬盘一模一样的副本,也是可以启动的。因为dd操作就是简单的按字节复制,什么分区表啊,MBR啊统统照搬。
当然你也可以做一些微调,来定制一下克隆操作。例如你可能希望把硬盘上的内容全部备份到一个磁盘文件中,而不是另一块新硬盘,你可以
dd if=/dev/sda of=~/disk1.img
之后,disk1.img就是备份好的磁盘映像文件,你可以复制或转移到其他介质也可以压缩一下:
gzip disk1.img #generates disk1.img.gz
或者在创建磁盘映像文件的同时就执行压缩:
dd if=/dev/sda | gzip > disk.img.gz
dd if=/dev/sda | bzip2 > disk.img.bz2

不错吧!ghost的功能都有了。

2.分区克隆
如果我们不想克隆整块磁盘,只想把某些存放数据的分区备份一下,你会需要克隆一个分区。正如预备知识所述,分区在linux下也是一个文件。例如
dd if=/dev/sda1 of=~/part1.img
将把第一块磁盘的第一个分区备份到名为part1.img的文件中。
也可以进行分区复制:
dd if=/dev/hda1 of=/dev/hda3
将把分区一原样复制到分区3.

3. 从镜像文件恢复磁盘或分区
很简单,把上面命令中,of和if指向的文件名互换一下即可实现恢复。例如
dd if=disk1.img of=/dev/sda
把保存在disk1.img中的映像恢复到第一块磁盘
dd if=part1.img of=/dev/hda2
把保存在part1.img中的映像恢复到第一块硬盘的第二个分区

最后,需要注意一点是,无论备份还是恢复,都需要保证 of 指向的文件或磁盘空间要大于 if 指向的内容,因为是按字节复制 如果没有足够的空间去存储内容,备份自然会失败。

jetsong-server:

1. 备份 dd if=/dev/nvme1n1 of=centos_disk_220502.img 

2. 还原 dd if=centos_disk_220502.img of=/dev/sda

硬盘复制

 dd if=/dev/nvme1n1 of=/dev/sda bs=1M 1>log.log 2>&1