Shell(十二)---Shell多进程并发

昨天出去面试,被问到一个问题,shell多进程有写过吗,确实之前的工作内容中也没有过这样的需求,所以决定复盘,找资料学习下多进程的内容。 适用环境在日常工作中写的关于结合 Jenkins 使用 Shell 脚本,其中的 CI/CD 过程也是必须有先后顺序的,如果脚本中任务或者函数模块之间没有存在依赖关系,相互独立,可以使用多进程的方式,快速完成脚本。 简单多进程简单的多进程方式,可以通过 &...

Shell(十一)---传说中的文本三剑客之awk

awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等。

在 Linux 系统下默认 awk 是 gawk,它是 awk 的 GNU 版本。可以通过命令查看应用的版本:ls -l /bin/awk

命令格式

awk 选项 'BEGIN{}{动作}END{}' file

其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号用于根据特定的模式对一系列指令进行分组。

Shell(十)---传说中的文本三剑客之sed

sed 是 Linux 中提供的一个外部命令,是一个行(hang)编辑器,也叫流编辑器,非交互式的对文件内容进行增删改查的操作,只能在命令行输入编辑命令、指定文件名,然后在屏幕查看输出。

它和文本编辑器又本质的区别了,单从名字上来看,行编辑器和文本编辑器,前者将文件中的行作为编辑对象,后者将文件作为编辑对象。

Shell(九)---传说中的文本三剑客之grep

三剑客是:grep、sed、awk,简直就是我的弱点,一直没机会深入,仅仅会简单的使用,看完本剑客系列即可在文本处理上上升一个档次。掌握的三剑客知识也越来越多。

grep 是一种文本搜索工具,用于查找给定文本中符合条件的字符串所在的行,并打印出来,可以配合上节中的正则和其他多种命令,使用十分灵活。

Shell(八)---正则表达式

正则表达式在每种编程或者脚本语言中都会有,功能就是在你做不到精确匹配时,尽可能的匹配到符合预期的字符串,可以简化脚本语言逻辑和流程。比如做监控脚本时,要取内存值,磁盘使用率,cpu负载等。

Shell(七)---函数与数组

我还没有接触 shell 函数的时候看到过一些类似编程语言的 shell 脚本,当时就感觉什么时候我也能写出这样的东西来就牛*了,接触过之后才知道,这个叫函数,很多数学不好的一听到函数也觉得算了,不学了,听着都难,按照人为的思路来理解一下就很简单了。

Shell(六)---循环大家庭

在实际工作中,会遇到某项任务重复执行,或者需要重复执行的命令中,只有个别参数不同。比如,测试主机连通性的ping命令,创建批量用户等操作。

这些任务的共同点就是简单且重复,循环语句就可以帮助解决工作中这种难题,提高工作效率,节省大量代码,同时也会相应想节省内存。

vim设置自动添加头部注释

作为一个运维在编写自动化脚本时,希望在脚本头部添加自己的作者信息,又或者版权信息,但是每写一个脚本就添加一遍注释,就显得自己很呆,本身工作就是做的自动化,结果还是劳心劳肺。

Shell(五)---if判断语句

在条件测试一文中,通过逻辑测试已经可以通过&&||完成简单的条件判断,并执行相应的操作,但是当需要判断的条件过多时,就会显得逻辑测试的方法的代码复杂,不好理解。而使用if条件语句,就可以让代码结构清晰易懂。

Shell(四)---条件测试与运算符

Shell脚本就是命令的集合,这也是脚本最简单易懂的理解。脚本的运行,无非就是想让命令在什么条件下怎么样的执行。如果仅仅是根据命令的集合来完成脚本自动化,就会出现很多的意外的脚本中断。要想让脚本有自己的”思想”。如:在创建目录之前,要知道有没有同名目录,如果同名的情况下,肯定会报错的。

Shell(三)---计划任务

对于运维工作来说,要保证服务7*24的正常运行,但是每个公司都会去分早晚班的执行吗,并不是的。那对于晚上没有运维在的场景下,要去进行业务的维护,应该怎么办,只能加班吗。答案一定是不是的。

Shell(二)---变量

在各种Shell环境中都会用到变量的概念。Shell变量用来存放系统和用户需要使用的特定参数值,通过使用变量,Shell程序能够提供更加灵活的功能,适应性强。

常见的Shell变量的类型包括 系统变量位置变量预定义变量自定义变量

下面围绕这四种变量类型来举例

shell---导入-导出docker镜像脚本

这是在公司作应用部署的时候,在研究offline(离线)部署时,写的脚本,并使用ansible的playbook调用执行。 环境是docker/k8s集群,本身使用ansible在安装应用的时候,会在github下载一些Dockerfile来构建docker image,会消耗大量的时间,甚至会在网络不好的时候,会出现网络中断,所以领导让我去做半离线状态的一个方式,并总结文档。 我首选是将已...

Shell(一)---基础知识

对Linux有过学习或者了解的都应该知道,Linux系统是基于 Shell 环境来执行的,作为运维也可以使用 Shell 脚本进行自动化的管理,使运维的工作更加的简化,减轻工作量。




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0