蓝鲸智云 v6.0.3 安装

Monitoring 蓝鲸智云 v6.0.3 安装 环境监测以及硬件配置 参考: 安装环境准备 脚本: curl -sSL http://172.16.0.219:8080/directlink/2/sh/sudo-2-firefly.sh|bash fdisk /dev/sda ==================================================================================================================== n t 31 w pvcreate /dev/sda1 vgcreate -s 32M data /dev/sda1 lvcreate -L 300G -n data00 data mkfs.ext4 /dev/data/data00 blkid |grep data ==================================================================================================================== echo 'UUID="26130f2b-ceb7-40d4-b1d9-8e2712735c55" /data ext4 defaults 0 0' >> /etc/fstab mkdir /data mount -a df -h wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo yum clean all yum makecache wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo yum clean all yum makecache systemctl disable firewalld yum -y install rsync pssh cat >> /etc/security/limits.conf << EOF root soft nofile 102400 root hard nofile 102400 EOF ntpdate cn.pool.ntp.org hostnamectl set-hostname tencent-bk1 timedatectl set-timezone Asia/Shanghai sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config reboot 获取安装包和证书文件 下载页 证书下载页 注意,证书需要三台节点的第一块网卡的mac地址,且下载证书是需要QQ登录的。 ...

译-终结一个进程和它的所有后代

Linux [译]终结一个进程和它的所有后代 终结一个类UNIX系统的进程可能比预期要复杂。上周我正在调试一个信号量停止工作导致的奇怪问题。更具体地说,涉及终结作业中正在运行的进程的问题。以下是我学到的内容的亮点: 类 UNIX 操作系统有很复杂的进程关系。父子进程、进程组、会话和会话负责人。但是,Linux 和 macOSX 等操作系统的细节并不统一。符合 POSIX 标准的操作系统支持向具有负 PID 编号的进程组发送信号。 在会话中向所有进程发送信号对于系统调用来说并不简单。 使用 exec 启动的子进程可以继承父进程的信号量信息。 杀死父进程不会杀死子进程 每个进程都有一个父进程,我们可以通过 pstree 或 ps 程序观察到这一点。 # start two dummy processes $ sleep 100 & $ sleep 101 & $ pstree -p init(1)-+ |-bash(29051)-+-pstree(29251) |-sleep(28919) `-sleep(28964) $ ps j -A PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 1 1 1 ? -1 Ss 0 0:03 /sbin/init 29051 1470 1470 29051 pts/2 2386 SN 1000 0:00 sleep 100 29051 1538 1538 29051 pts/2 2386 SN 1000 0:00 sleep 101 29051 2386 2386 29051 pts/2 2386 R+ 1000 0:00 ps j -A 1 29051 29051 29051 pts/2 2386 Ss 1000 0:00 -bash ps 命令显示 PID (进程的 ID)和 PPID (进程的父 ID)。 ...

超微主板更新 BIOS

Hardware 超微主板更新 BIOS 该操作本身已没有多少难度,相关教程一搜一大把,主要分以下几步。 下载 Refus(Windows平台)软件 下载 MS-DOS 镜像(建议从 i tell you 获取) 从超微官网找到对应主板最新的 BIOS 文件压缩包,下载流程可以参考 supermicro X10和X11主板或平台BIOS和BMC/IPMI固件更新 找到一个 U 盘,通过 Refus 软件,将第二步获得的镜像拷入 将第三步的压缩包解压,放到 U 盘剩余空间中 将 U 盘插入到待升级的主板上,进入 Bios,选择 UEFI:Build-in shell 的方式启动,之后的操作可以参考:超微主板BIOS固件更新图解 超微 X10DAi BIOS固件升级 主要难点在于,新生代的技术人员,已经很少接触 DOS,无法理解 DOS 到底该怎么用,所以在配置 DOS 引导盘的时候走了不少弯路。牵扯到底层的更新,DOS 还是更有效。

软 raid 配置简单操作

Linux RAID 软raid配置简单操作 分以下几步: 停止已有的md 磁盘分区 创建软raid虚拟磁盘 格式化磁盘 挂载磁盘 停止已有的md 通过 ls -al /dev/md*,观察是否已有 mdxxx 的字样,如果有则需要先清掉。 all_disk=`fdisk -l|grep '1.8 T'|awk '{print $2}'|cut -d":" -f1` part_disk=`fdisk -l|grep 'Linux raid autodetect'|awk '{print $1}'` umount /dev/md/cache md_list=`ls -al /dev/md/*|awk '{print $9}'` for i in $md_list do mdadm -S $i done mdadm --misc --zero-superblock $part_disk rm -f /etc/mdadm.conf rm -f /etc/mdadm/mdadmin.conf 磁盘分区 通过 fdisk -l,观察每块nvme磁盘是否都有一个分区,且该分区的类型是 Linux raid autodetect。如果不是则需要配置。 fdisk /dev/nvme?n1 # 下列操作需要依据需求来做,一般通过n创建分区,通过fd指定类型,通过w写入数据。 创建软raid虚拟磁盘 这一步不难,如果前面做好的话。 blkid $part_disk /sbin/mdadm --create cache --auto yes --level 0 -n`echo $part_disk|wc -w` $part_disk 上面的指令出现了五个问号,都是数字。其中n后面的数字是指一共几个磁盘,nvme后面的指盘符。 ...

队列的Python实现(列表实现)

Python Data Structure 队列的 Python 实现(列表实现) class Queue(object): """队列的定义 """ # 队列的初始化,生成空列表 def __init__(self): self.item = [] # 队列判空方法,返回 True or False def isEmpty(self): return self.item == [] # 求队列元素个数方法,返回 int 值 def size(self): return len(self.item) # 入队列方法,从列表头部插入 def enqueue(self, value): self.item.insert(0, value) # 出队列方法,从列表尾部弹出,返回弹出值 def dequeue(self): return self.item.pop() def hotpotato(namelist, num): """ 利用队列,完成烫手山芋算法(类似于点兵出列) 先填充满队列,然后做 num 次循环,每次循环将列首出列,再入列,直到最后一个数据直接出列 当队列的元素只剩一个时,就是最后的 winner """ simqueue = Queue() for name in namelist: simqueue.enqueue(name) while simqueue.size() > 1: for i in range(num): simqueue.enqueue(simqueue.dequeue()) simqueue.dequeue() return simqueue.dequeue() # 队列测试 # q = Queue() # print(q.size(), "\n", q.isEmpty(), "\n", q.enqueue(2), "\n",\ # q.enqueue("dog"), "\n", q.dequeue(), "\n", q.size(), "\n", q.dequeue()) # 烫手山芋测试 # print(hotpotato(["Bill","David","Susan","Jane","Kent","Brad"],7))

阿里云挂载 NFS 磁盘

Linux [[Alibaba Cloud]] 阿里云挂载 NFS 磁盘 其实阿里云买了服务过后,作为一个开发者,跟着文档走,大部分问题都可以解决,现成的指令甚至连参数都帮你替换好了,复制粘贴就好,但是因为复杂,会接连出现多个文档,缺少统一性。 安装组件以及调优 $ sudo yum install nfs-utils $ echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf $ echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf $ reboot $ cat /proc/sys/sunrpc/tcp_slot_table_entries 挂载 NFS 磁盘 首先先购买 NAS 文件系统,买完之后,其实就可以理解为拥有了一个根分区的容量很大的磁盘,可以通过 mount 的方式将这个文件系统作为普通目录挂载在 ECS 中。 打开 NAS 文件系统控制台,点击资源进入,在挂载使用里面给出了“已自动替换参数的命令”,简单的操作就是复制到 ECS 主机上就可以了。 $ sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt 参数 描述 file-system-id.region.nas.aliyuncs.com:/ /mnt 表示<挂载点地址>:<NAS文件系统目录> <当前服务器上待挂载的本地路径> vers 文件系统版本,目前只支持nfsv3和nfsv4。 挂载文件系统时,可选择多种挂载选项,详情情参见下表。 如果您必须更改IO大小参数 (rsize和wsize),建议您尽可能使用最大值 (1048576),以避免性能下降。 如果您必须更改超时参数 (timeo),建议您使用150或更大的值。该timeo参数的单位为0.1秒,因此150表示的时间为15秒。 不建议使用soft选项,有数据一致性风险。如果您要使用soft选项,相关风险需由您自行承担。 避免设置不同于默认值的任何其他挂载选项。如果更改读或写缓冲区大小或禁用属性缓存,会导致性能下降。 选项 说明 rsize 定义数据块的大小,用于在您的客户端与云中的文件系统之间读取数据。建议值:1048576。 wsize 定义数据块的大小,用于在您的客户端与云中的文件系统之间写入数据。建议值:1048576。 hard 指定在NAS暂时不可用的情况下,使用文件系统上某个文件的本地应用程序时应停止并等待该文件系统恢复在线状态。建议启用该参数。 timeo 指定时长(单位为0.1秒),即NFS客户端在重试向云中的文件系统发送请求之前等待响应的时间。建议值:600(60秒)。 retrans 指定NFS客户端应重试请求的次数。建议值:2。 noresvport 指定在网络重连时使用新的TCP端口,保障在网络发生故障恢复的时候不会中断连接。建议启用该参数。 $ df -h|grep aliyun 错误处理 这中间可能会出现一些问题导致无法挂载,阿里云已经写好了 python 脚本去检测问题。 ...

零宽字符的 python 实现

Python 零宽字符的 python 实现 原理 零宽字符 零宽字符是一种在浏览器中不打印的字符,大致相当于 display: none ,在许多文本应用中也不显示,比如邮箱、QQ、微信、文本编辑器等 这里有三种零宽字符 – 零宽空格、零宽连字、零宽不连字 零宽字符在浏览器中对应的转义字符 零宽空格 --- &#8203; 零宽不连字 --- &#8204; 零宽连字 --- &#8205; 摩斯电码 摩斯电码采用长短两种符号进行文本加密,通过字典进行加密和解码,摩斯电码字典如下图所示: 字符 电码符号 字符 电码符号 字符 电码符号 字符 电码符号 A .- B -… C -.-. D -.. E . F ..-. G –. H …. I .. J .— K -.- L .-.. M – N -. O — P .–. Q –.- R .-. S … T - U ..- V …- W .– X -..- Y -.– Z –.. 由于摩斯码只有 - 和 . 两个符号,而两个字母之间没有区分,我们假设用 / 区分。 ...