编程设计思想

健康检查脚本

nmap:扫描端口

while true

do 

    healthy=`curl B:httpPORT/healthy -i  | grep HTTP/1.1 | tail -n 1 | awk '{print $2}'`

done

批量操作类型脚本(记录每一步日志)

 将100个nginx:vn推送到harbor仓库192.168.0.100

根据镜像对比sha值,来判断是否为你想要的镜像

批量部署脚本

功能:在一台机器上可以对所有机器进行操作

原理:给机子进行免密登录

批量分发脚本

网络测试类型脚本

用一些手段去获取域内所有主机的信息

举例:假如有dhcp分配IP,想查看哪些IP被占用。

用数组记录IP地址池,再for循环这个数组,ping这个IP地址,如果不通就没有占用,同时需要并行执行,这样可以同时用多个进程去执行命令,大大提高效率。

批量文本处理类型脚本

Grep -r aaa 是显示文件名和里面的东西

并发:QPS 每秒访问次数,不管有多少请求在1s内访问

并行:同一时间内并行发生。

文档对比认证

变量

变量赋值:= 、for i in、read

变量在内存中的存储,会在内存中空出一块内存,用来存变量名称和值。

!a的用法

 

#a  获取字符串长度

fileformat=unix 文件输出格式

·长短匹配

#左匹配  %右(单)匹配  %%长匹配

/是做匹配转换的,将双杠中间的数转换为后面的数。

字符串的切片操作,从第几个开始切,切到第几位。

数组

${array[@]} 比较常见,代表取所有,*也指取所有。

·批量注释:#号或

<<comment

Comment

变量的作用域

局部变量local (只能在函数块中使用)、全局变量(在一个进程中可以使用)、环境变量(继承给子进程使用)

$# 传递的参数的个数

$* 参数列举出来

$$ 显示进程号   $?查看上一条消息的返回码

-a的优先级高于-o的优先级,多重判断需注意使用。

运算符

 

 

Shell中默认所有的字符都是字符串

IFS表示默认分隔符(尽量不用)

计数器:

用sum清零来延缓网络波动性。

case 常在部署软件时使用

文件测试描述符

-b file 检测文件是否是块设备文件,如果是,则返回 true。[-b $file]返回 false。

-c file 检测文件是否是字符设备文件,如果是,则返回 true。[-c $file]返回 false。

-d file 检测文件是否是目录,如果是,则返回 true。[-d $file]返回 false。

-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。[-f $file]返回 true。

-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。[-g $file]返回 false。

-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。「-k $file]返回 false。

-p file 检测文件是否是有名管道,如果是,则返回 true。[-p $file]返回 false。

-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。[-u $file]返回 false。

-r file 检测文件是否可读,如果是,则返回 true。[-r $file]返回 true。

-w file 检测文件是否可写,如果是,则返回 true。[-w $file]返回 true。

-x file 检测文件是否可执行,如果是,则返回 true。[-x $file]返回 true。

-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。[-s $file]返回 true。

文件描述符的范围0-255 文件流输入输出要有文件名fd来标识。

0是标准输出、1是标准正确输出、2是错误输出

只要有文件传输就会有文件流,有文件流输出输出必有描述符。

资源分配的最小单位是进程,

当CPU上下文切换,也是进程切换。

进程和线程的区别:

有没有分配共享出来的资源

执行环境与资源:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位1。每个进程都有自己独立的地址空间、文件描述符等资源23。而线程是进程内的一个执行单元,共享进程的地址空间和资源,如内存空间、文件等。

通信与切换开销:进程之间的通信需要通过显式的机制,如管道、消息队列和共享内存等来实现,因此通信开销相对较大。而线程之间可以直接读写进程共享的数据,通信更加方便和快捷3。同样,由于线程共享进程的资源,创建、销毁和切换线程的开销相对较小,而进程由于具有独立的资源,其创建、销毁和切换的开销相对较大。

并发性与独立性:进程是独立的执行单元,具有自己的调度算法,在并发条件下更加稳定可靠。而线程共享进程的资源,线程之间的调度和同步比较复杂,对并发条件的处理需要更多的注意。

管理与安全:进程的管理相对复杂,需要操作系统的支持。而线程的创建和销毁相对简单,可以更灵活地进行管理3。另外,进程间的地址空间隔离使得不同进程的数据互不影响,因此更加安全可靠。线程间则需要考虑共享数据的安全性和避免竞争条件。

总结来说,进程和线程在执行环境、资源、通信、切换开销、并发性、独立性、管理以及安全性等方面都存在显著的区别。了解这些区别对于编写高效、安全和可靠的程序至关重要。

内核态(发生在ring0级别的内核调用),凡是和硬件直接相关的都是内核态、用户态(发生在ring3级别的内核调用),在硬件上被软件一层层赋予的大概是用户态

Ring0是系统的开关机、严格的资源访问;ring3是用户开的一些进程。

从用户态到内存态在内存上是消耗资源的。像网卡、网络等这种和硬件直接相关的都是内核态;在硬件上做一层层的软件处理的大概率是用户态。

生产者、消费者问题

一个生产者、一个消费者,中间有缓存空间。生产者和消费者不用直接联系,只需连接中间的缓存空间即可。

异步:请求管道、完成管道,记录着客户端是谁,客户的请求资源是谁,返回的资源是谁

一般情况下,在做生产者和消费者时,当其中一个消费者去访问的时候,会涉及到一个加锁问题lock,会直接将你的读写权限锁掉,将其他进程对你中间管道读写权限锁掉,其他过来读是无权限的

在整个生产者、消费者流程中若有某个节点数据填满,而导致整个服务流程无法进行,那么就叫死锁。

互斥锁:解决多个进程对同一个进程改变的问题。互斥锁用来保护共享资源,确保在任意时刻只有一个线程能够访问共享资源,从而避免数据竞争和不一致性问题。

扩展

高可用:遇事不决,冗余部署

对象:是抽象出来的一种属性,类如果被赋值,就被称为对象

总结

脚本练习

1.随机n个元素的数组(n>10),输出相邻4位元素大于20的元素数组集合 

#!/bin/bash

n=20

random_array=()

for ((i=0; i<$n; i++)); do

    random_num=$((RANDOM % 101)) # 生成0-100的随机数

    random_array+=($random_num)

done

echo "原始数组:"

for element in "${random_array[@]}"; do

    echo $element

done

for ((i=0; i<${#random_array[@]}-3; i++)); do

    # 计算当前四个元素之和

    sum=$((random_array[i] + random_array[i+1] + random_array[i+2] + random_array[i+3]))

    if ((sum > 20)); then

        echo "元素集合: ${random_array[i]} ${random_array[i+1]} ${random_array[i+2]} ${random_array[i+3]}"

    fi

done

 

 

2.健康检查脚本

 

3. 镜像批量拉改推脚本,sha值比对

给脚本执行权chmod +x 3.sh

./3.sh

4.批量命令,分发脚本

创建一个包含服务器列表的文件(例如servers.txt),每行一个服务器的IP地址或主机名

5.网络探测脚本,主机ip,端口

6.文本校对替换脚本

7. nginx日志根据时间统计人数,访问量,单人访问次数,并发数

8.跨主机实现的一个生产者消费者模型

使用流程控制语句结合组织8个功能

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据中心网络100GbE发展趋势

100G光产品的技术突破不断满足超大规模数据中心的需求。5G的发展使许多行业能够实现高数据吞吐量和低延迟。从2017年至今&#xff0c;不少企业已经升级到100G数据中心网络&#xff0c;进而追求400G/800G网络。与此同时&#xff0c;其他小型数据中心已逐渐升级至100G。 是什么推…

安装与配置:MySQL的环境搭建之旅(二)

目录 引言&#xff1a;从理论到实践的跨越 一、安装MySQL&#xff1a;跨平台的便捷指南 Windows环境 Linux环境 macOS环境 二、基本配置&#xff1a;端口设置与字符集选择 三、从零到一的蜕变 引言&#xff1a;从理论到实践的跨越 在前一章节《MySQL简介》中&#xff0c…

【efinix】efinity如何安装官方补丁patch

efinix官网可以下载efinity的官方补丁。 下载 efinity-2023.2.307.5.10-windows-x64-patch.zip 解压缩补丁zip 压缩包内容 files/ : updated files to be copied into the Efinity installation run.sh : patch installation script (Linux on…

ZGC垃圾收集的主要流程

值得说明的是&#xff0c;在执行就地迁移时&#xff0c;ZGC 必须首先压缩指定为对象迁移区域内的对象&#xff0c;这可能会对性能产生负面影响。增加堆大小可以帮助 ZGC 避免使用就地迁移。 如上图&#xff0c;ZGC 的工作流程主要包括以下几个步骤&#xff1a; &#xff08;STW…

深入理解计算机系统 CSAPP 家庭作业7.13

用一下496页提到的工具咯 A: whereis libm.a file lidm.a gedit libm.a libm.a是个ASCII text文件打开一看原来 libm-2.27.a 和libmvec.a才是我们要看的 所以我们cd到目标地址后 ar -t libm-2.27.a ar -t libmvec.a B: gcc -Og bar5.c foo5.c 用之前的两个文件链接后生成…

若依项目实战------企业人力资源管理平台

一、数据库名称规范化及建表相关 1.术语名称 1.系统名称&#xff1a;企业人力资源管理平台英文翻译&#xff1a;Enterprise Human Resource Management Platform缩写&#xff1a;EHR 2.员工信息管理&#xff08;Employee Information Management 缩写&#xff1a;EIM&#…

使用API有效率地管理Dynadot域名,为文件夹更名

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

适用于 Windows 11 的 5 大数据恢复软件 [免费和付费]

为什么我们需要Windows 11数据恢复软件&#xff1f; 计算机用户经常遇到的一件事就是数据丢失&#xff0c;这种情况随时可能发生。错误地删除重要文件和文件夹可能会非常令人担忧&#xff0c;但幸运的是&#xff0c;有一种方法可以恢复 PC 上丢失的数据。本文将向您展示可用于…

通过Socket通信实现局域网下Amov无人机连接与数据传输

1.局域网下的通信 1.1 局域网 厂家提供的方式是通过Homer图数传工具(硬件)构建的amov局域网实现通信连接. 好处是通信距离足够长,支持150m;坏处是"局部",无法访问互联网. &#xff3b;&#xff29;&#xff2d;&#xff21;&#xff27;&#xff25;&#xff1a;…

经销or直营,新老车企殊途终要同归

步入2024&#xff0c;汽车圈的新人、老人都逐渐活成了对方的样子。 2024年5月&#xff0c;先后有消息传来&#xff0c;阿维塔要从直营模式全部转向经销模式&#xff0c;蔚来新发布的子品牌“乐道”未来可能考虑合作或加盟&#xff0c;并单独建设门店。 而就在5月1日&#xff…

Qt开发 | Qt控件 | QTabWidget基本用法 | QListWidget应用详解 | QScrollArea应用详解

文章目录 一、QTabWidget基本用法二、QListWidget应用详解1.列表模式1.1 基本操作1.2 添加自定义item1.3 如何添加右键菜单1.4 QListWidget如何删除item 2.图标模式 三、QScrollArea应用详解 一、QTabWidget基本用法 QTabWidget 是 Qt 框架中的一个类&#xff0c;它提供了一个选…

DM达梦数据库数学函数整理

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

欧洲杯盛宴与火伞云融合CDN:技术革新与体育盛事的完美融合

随着科技的飞速发展&#xff0c;体育盛事也迎来了前所未有的变革。欧洲杯&#xff0c;作为世界足坛的顶级赛事&#xff0c;吸引了全球数亿球迷的目光。而在这个信息爆炸的时代&#xff0c;如何确保球迷们能够流畅、高清地观看比赛&#xff0c;成为了各大媒体和技术公司面临的重…

shell脚本和变量

一、shell脚本 脚本就是可以运行的代码的集合&#xff0c;脚本语言&#xff08;计算机语言&#xff09;的特点是&#xff1a;从上到下&#xff0c;按行执行。 LINUX中的shell脚本是运行在shell环境中&#xff08;/bin/bash&#xff09;&#xff0c;bash是shell的解释器。shel…

一文搞懂Linux多线程【下】

目录 &#x1f6a9;多线程代码的健壮性 &#x1f6a9;多线程控制 &#x1f6a9;线程返回值问题 &#x1f6a9;关于Linux线程库 &#x1f6a9;对Linux线程简单的封装 在观看本博客之前&#xff0c;建议大家先看一文搞懂Linux多线程【上】由于上一篇博客篇幅太长&#xff0c;为…

Java技术栈中的核心组件:Spring框架的魔力

Java作为一门成熟的编程语言&#xff0c;其生态系统拥有众多强大的组件和框架&#xff0c;其中Spring框架无疑是Java技术栈中最闪耀的明星之一。Spring框架为Java开发者提供了一套全面的编程和配置模型&#xff0c;极大地简化了企业级应用的开发流程。本文将探讨Spring框架的核…

打破数据分析壁垒:SPSS复习必备(八)

一、假设检验-基本概念 对总体提出一假设&#xff0c;然后借助样本对该假设进行检验。 原假设 H0: 在统计学中,把需要通过样本去推断正确与否的命题,称为原假设,又称零假设.它常常是根据已有资料或经过周密考虑后确定的. 备择假设H1: 与原假设对立的假设. 显著性水平(signi…

兰州市红古区市场监管管理局调研食家巷品牌,关注细节,推动进步

近日&#xff0c;兰州市红古区市场监管管理局临平凉西北绿源电子商务有限公司进行了深入视察&#xff0c;为企业发展带来了关怀与指导。 食家巷品牌作为平凉地区特色美食的代表之一&#xff0c;一直以来凭借其纯手工工艺和独特的风味&#xff0c;在市场上占据了一席之地。领导…

Linux常用环境变量PATH

Linux常用环境变量 一、常用的默认的shell环境变量二、环境变量 PATH三、持久化修改环境变量四、常用的环境变量 一、常用的默认的shell环境变量 1、当我们在shell命令行属于一个命令&#xff0c;shell解释器去解释这个命令的时候&#xff0c;需要先找到这个命令. 找到命令有两…

统信UOS上鼠标右键菜单中添加自定义内容

原文链接&#xff1a;统信UOS上鼠标右键菜单中添加自定义内容 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在统信UOS桌面操作系统上鼠标右键菜单中添加自定义内容的文章。通过自定义鼠标右键菜单&#xff0c;可以大大提升日常操作的效率和便捷性。本文将详细…