编程设计思想

健康检查脚本

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.rhkb.cn/news/361298.html

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

相关文章

【开源项目】自然语言处理领域的明星项目推荐:Hugging Face Transformers

在当今人工智能与大数据飞速发展的时代&#xff0c;自然语言处理&#xff08;NLP&#xff09;已成为推动科技进步的重要力量。而在NLP领域&#xff0c;Hugging Face Transformers无疑是一个备受瞩目的开源项目。本文将从项目介绍、代码解释以及技术特点等角度&#xff0c;为您深…

面向对象修炼手册(四)(多态与空间分配)(Java宝典)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;面向对象修炼手册 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 1 多态 1.1 多态的形式&…

需求之 实现获取调试信息在h5页面,在手机端可以查看调试(二)

事实证明 chatgpt很好用&#xff0c;有不懂的问题可以问它 https://zhuanlan.zhihu.com/p/690118775 国内外9个免费的ChatGPT网站 我筛选出来的比较好用免费的网站 fchat.dykyzdh.cn/ 这个也可以 阿里云的 通义灵码 在vscode中安装使用 而且阿里云有一个产品&#xff0c;可以…

面试-Java线程池

1.利用Excutors创建不同的线程池满足不同场景的需求 分析&#xff1a; 如果并发的请求的数量非常多&#xff0c;但每个线程执行的时间非常短&#xff0c;这样就会频繁的创建和销毁线程。如此一来&#xff0c;会大大降低系统的效率。 可能出现&#xff0c;服务器在为每个线程创建…

jdk1.8升级到jdk11遇到的各种问题

一、第三方依赖使用了BASE64Decoder 如果项目中使用了这个类 sun.misc.BASE64Decoder&#xff0c;就会导致错误&#xff0c;因为再jdk11中&#xff0c;该类已经被删除。 Caused by: java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder 当然这个类也有替换方式&#xf…

MySQL实训--原神数据库

原神数据库 er图DDL/DML语句查询语句存储过程/触发器 er图 DDL/DML语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;DROP TABLE IF EXISTS artifacts; CREATE TABLE artifacts (id int NOT NULL AUTO_INCREMENT,artifacts_name varchar(255) CHARACTER SET utf8 COLLATE …

一文搞懂Linux多线程【下】

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

文件操作<C语言>

导言 平时我们在写程序时&#xff0c;在运行时申请内存空间&#xff0c;运行完时内存空间被收回&#xff0c;如果想要持久化的保存&#xff0c;我们就可以使用文件&#xff0c;所以下文将要介绍一些在程序中完成一些文件操作。 目录 导言 文件流 文件指针 文件的打开与关闭 …

《黑神话悟空》电脑配置要求

《黑神话&#xff1a;悟空》这款国内优秀的3A游戏大作&#xff0c;拥有顶级的特效与故事剧情&#xff0c;自公布以来便备受玩家期待&#xff0c;其精美的画面与流畅的战斗体验&#xff0c;对玩家的电脑配置提出一定要求。那么这款优秀的游戏需要什么样的电脑配置&#xff0c;才…

记录:[android] SSLHandshakeException: Handshake failed 问题;已解决!

1、问题描述&#xff1a;在使用Retrofit2 时在安卓老设备上&#xff08;安卓6.0&#xff09;网络无法请求、安卓 10 、 11 未出现此问题&#xff1f;what? 原因&#xff1a;服务端 TLS 版本过高 2、废话不多说、解决方案A 、添加依赖&#xff1a;implementation org.conscrypt…

黑马苍穹外卖6 清理redis缓存+Spring Cache+购物车的增删改查

缓存菜品 后端服务都去查询数据库&#xff0c;对数据库访问压力增大。 解决方式&#xff1a;使用redis来缓存菜品&#xff0c;用内存比磁盘性能更高。 key :dish_分类id String key “dish_” categoryId; RestController("userDishController") RequestMapping…

游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发

游戏工厂&#xff1a;AI&#xff08;AIGC/ChatGPT&#xff09;与流程式游戏开发 码客 卢益贵 ygluu 关键词&#xff1a;AI&#xff08;AIGC、ChatGPT、文心一言&#xff09;、流程式管理、好莱坞电影流程、电影工厂、游戏工厂、游戏开发流程、游戏架构、模块化开发 一、前言…

【每日刷题】Day75

【每日刷题】Day75 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 1833. 雪糕的最大数量 - 力扣&#xff08;LeetCode&#xff09; 2. 面试题 17.14. 最小K个数 - 力扣…

LabVIEW电梯钢丝绳实时监测系统

电梯作为现代高层建筑中不可或缺的交通工具&#xff0c;其安全性直接影响到乘客的生命财产安全。电梯钢丝绳作为承载乘客与货物的关键部件&#xff0c;其健康状况尤为重要。传统的钢丝绳检测方法大多依赖于定期检查&#xff0c;无法实现实时监控&#xff0c;存在一定的安全隐患…

DPDK使用make编译并运行示例程序

环境&#xff1a; VMware Workstation 16 Pro 16.2.4 虚拟机系统&#xff1a;Centos 8 DPDK版本&#xff1a;stable-20.11.10 下载源码后&#xff0c;使用meson和ninja编译完成、配置并挂载大页、内核和VFIO设置完成&#xff0c;在dpdk源码目录下的build/…

安全技术和防火墙

安全技术和防火墙 安全技术 入侵检测系统&#xff1a;特点是不阻断网络访问&#xff0c;主要提供报警和事后监督&#xff0c;不主动介入&#xff0c;默默看着你&#xff08;监控&#xff09; 入侵防御系统&#xff1a;透明模式工作&#xff0c;数据包&#xff0c;网络监控&am…

Python22 Pandas库

Pandas 是一个Python数据分析库&#xff0c;它提供了高性能、易于使用的数据结构和数据分析工具。这个库适用于处理和分析输入数据&#xff0c;常见于统计分析、金融分析、社会科学研究等领域。 1.Pandas的核心功能 Pandas 库的核心功能包括&#xff1a; 1.数据结构&#xff…

YIA主题侧边栏如何添加3D旋转标签云?

WordPress站点侧边栏默认的标签云排版很一般&#xff0c;而3D旋转标签云就比较酷炫了。下面boke112百科就以YIA主题为例&#xff0c;跟大家说一说如何将默认的标签云修改成3D旋转标签云&#xff0c;具体步骤如下&#xff1a; 1、点此下载3d标签云文件&#xff08;密码&#xf…

ardupilot开发 --- 视觉伺服 篇

风驰电掣云端飘&#xff0c;相机无法对上焦 1.视觉伺服分类2.视觉伺服中的坐标系3.成像模型推导4.IBVS理论推导5.IBVS面临的挑战6.visp 实践参考文献 1.视觉伺服分类 控制量是在图像空间中推导得到还是在欧式空间中推导得到&#xff0c;视觉伺服又可以分类为基于位置(PBVS)和基…

我的3次软考高项通关之旅

1、缘起 初次听说软考是在2022年下半年了&#xff0c;软考的高级分为很多种&#xff0c;我起先想报考高级架构师&#xff0c;但是架构师一年才考一次&#xff0c;如果一次考不过得再准备一年&#xff0c;时间对我来说太长了&#xff0c;于是我决定报考一年考两次的高项。对于国…