
【系统运维-Shell】
文章平均质量分 73
小小工匠
show me the code ,change the world
展开
-
Linux - 利用/proc/sys/vm/drop_caches实现手工清理系统缓存
通常情况下,不需要手动清理缓存,因为 Linux 内核会自动管理这些资源,确保内存的高效利用。然而,在一些特定情况下(如性能测试或内存紧张),可能需要手动清理缓存。列表示系统用于缓冲和缓存的内存。它占用了内存,但这些内存可以随时被释放并分配给其他进程,因此实际并不会导致内存不足。使用free 命令,看到 buff/cache 占用很多。命令用于显示系统内存的使用情况。它的作用是清理系统缓存。该命令分为两个部分,通过。原创 2024-06-23 15:44:30 · 5725 阅读 · 0 评论 -
Linux - firewall-cmd 命令添加端口规则不生效排查
命令中的区域名称和端口号是正确的。如果你有更多的详细信息或特定的错误消息,可以提供它们以便更好地帮助你解决问题。:有时候,防火墙规则之间可能存在冲突。:在添加或更改规则后,需要重新加载防火墙规则以使更改生效。如果你仍然遇到问题,可能需要检查系统日志以获取更多信息,以便进一步诊断问题。:确保你正在为正确的防火墙区域(zone)添加端口规则。最后,如果你使用的是特定的防火墙区域或有定制需求,确保你的。命令查看所有规则,检查是否存在任何与所需规则冲突的规则。区域,请将区域名称更改为适合你的情况。原创 2023-10-27 05:30:00 · 11591 阅读 · 1 评论 -
Shell - 加固系统配置
【代码】Shell - 加固系统配置。原创 2023-08-31 22:45:00 · 10041 阅读 · 0 评论 -
Shell - 根据用户名查询该用户的相关信息
【代码】Shell - 根据用户名查询该用户的相关信息。原创 2023-08-31 22:00:00 · 10091 阅读 · 0 评论 -
Shell - 根据PID过滤进程信息
【代码】Shell - 根据PID过滤进程信息。原创 2023-08-31 21:15:00 · 9963 阅读 · 0 评论 -
Shell - 根据进程名过滤进程信息
【代码】Shell - 根据进程名过滤进程信息。原创 2023-08-31 21:45:00 · 9788 阅读 · 0 评论 -
Linux - 借助 inotifywait,轻松实现 Linux 文件/目录事件监听
使用 inotifywait 命令时,它会持续监视指定的文件或目录,并在事件发生时输出相关信息。可以根据需要处理输出,例如执行其他命令或触发脚本。如果监视的是目录,则 inotifywait 命令也会观察该目录中的子目录。可以使用 -r 选项来递归地监视目录及其子目录中的文件。以上命令将同时监视 a1.txt、a2.txt 和 mydir/ 中的文件的修改和创建事件。以上命令将监视 myfile.txt 文件的修改和创建事件。以上命令将监视 mydir/ 目录中文件的修改和创建事件。原创 2023-08-17 21:30:00 · 11565 阅读 · 0 评论 -
Linux-编写Shell的几个技巧_02
文章目录Pre避免重叠运行意外退出时杀掉所有子进程timeout 限制运行时间连续管道时, 使用 tee 将中间结果落盘,以便查问题set -x -e -u -o pipefailPreLinux-编写Shell的几个技巧 继续避免重叠运行在一些场景中,如果不希望一个脚本有多个实例在同时运行。比如用 crontab 周期性运行脚本时,有时不希望上一个轮次还没运行完,下一个轮次就开始运行了。这时可以用 flock 命令来解决。 flock 通过文件锁的方式来保证独占运行,并且还有一个好处是进原创 2021-04-08 23:50:28 · 17669 阅读 · 0 评论 -
Shell - 通过hook文件后门实现应用的自动启停
文章目录启动脚本daemon启动脚本 #!/bin/bashset_network_param(){ sysctl -w fs.file-max=999999 sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w net.ipv4.tcp_fin_timeout=15 sysctl -w net.core.netdev_max_backlog=4096 sysctl -w net.core.somaxconn=40960 sysctl -w net.原创 2020-09-28 11:06:06 · 13976 阅读 · 0 评论 -
Shell - 监控某个进程的内存占用情况、主机CPU、磁盘空间等信息以及守护进程
文章目录脚本启动的两种方式方式一 注册到系统Cron方式二运行结果脚本 #!/bin/sh################################ 名称: MonitorES.sh## 描述: 主机利用率超过阈值 判断top占用内存的进程 匹配ES 重启## 参数: 暂无## 作者: 小工匠###############################定义退出标识符EXIT_FAILURE=1 #Failing exit status EXIT_SUCCESS=0原创 2020-09-28 10:48:12 · 15638 阅读 · 2 评论 -
Linux 中启用 Shell 脚本的调试模式
概述脚本是存储在一个文件的一系列命令。在终端上输入一个个命令,按顺序执行的方法太弱了,使用脚本,系统中的用户可以在一个文件中存储所有命令,反复调用该文件多次重新执行命令。在学习脚本或写脚本的初期阶段,我们通常从写小脚本或者几行命令的短脚本开始,调试这样的脚本时我们通常无非就是通过观察它们的输出来确保其正常工作。然而,当我们开始写非常长或上千行命令的高级脚本,例如改变系统设置的脚本,在网络上执行关键备原创 2017-01-15 19:39:06 · 14245 阅读 · 0 评论 -
在 Shell 脚本中跟踪调试命令的执行
shell 脚本调试系列本系列的前面部分清晰地阐明了另外两种 shell 脚本调试模式:详细模式和语法检查模式,并用易于理解的例子展示了如何在这些模式下启用 shell 脚本调试。Linux 中启用 Shell 脚本的调试模式在 Shell 脚本中执行语法检查调试模式 在 Shell 脚本中跟踪调试命令的执行概述shell 跟踪简单的来说就是跟踪 shell 脚本中的命令的执行。要打开 sh原创 2017-01-15 20:26:43 · 21497 阅读 · 0 评论 -
Shell-实际业务操作02
#!/bin/sh################################ 名称: MvCdr4Classify.sh## 描述: 将/ocs/data/output/251/normal/bak目录下的全部话单按照类别存储到对应的目录下(VOICE\DATA\SMS)## 规则 001 Data 002 Voice 004 SMS##原创 2017-06-19 09:39:21 · 14296 阅读 · 0 评论 -
Shell-实际业务操作01
#!/bin/sh################################ 名称: MvOtherCdrTo251.sh## 描述: /ocs/data/output目录下的25开头(251,257,258除外)对应目录下的/normal/bak下的文件 全部转移到/ocs/data/output/251/normal/bak## 参数: 暂无## 作者: 小工匠## 日期: 2原创 2017-06-19 09:37:37 · 14143 阅读 · 0 评论 -
Shell-实际业务操作03
#!/bin/sh################################ 名称: TarCdrAndTransfer.sh.sh## 描述: 将/bakcdr/cdrbak/VOICE[DATA/SMS]/normal目录下的日期目录Tar成GZ包,mv到 /bakcdr/cdrbak/VOICE/gz_file,## 然后通过FTP传递到目标主机 151 cd原创 2017-06-19 09:40:19 · 14400 阅读 · 0 评论 -
Linux-编写Shell的几个技巧
1、 脚本中添加注释在脚本中作注释能帮你或别人翻阅你的脚本时了解脚本的不同部分所做的工作。注释用 # 号来定义2、 当运行失败时使脚本退出有时即使某些命令运行失败,bash 可能继续去执行脚本,这样就影响到脚本的其余部分(会最终导致逻辑错误)。用下面的行的方式在遇到命令失败时来退出脚本执行:# 如果命令运行失败让脚本退出执行set -o errexit # 或set -e举例#!/bin/ba原创 2017-07-04 11:59:46 · 14051 阅读 · 0 评论 -
Shell-alias在Shell脚本中的使用
概述众所周知,shell脚本使用的是非交互式方式,在非交互式模式下alias扩展功能默认是关闭的,此时虽然可以定义alias别名,但是shell不会将alias别名扩展成对应的命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH中均没有与alias别名同名的命令,则shell会找不到指定的命令。在shell中开启alias使用shell内置命令shopt命令来开启alias扩原创 2017-07-26 20:28:08 · 21507 阅读 · 0 评论 -
Shell-使用&和wait让你的脚本并行执行
文章目录概述常见的串行执行使用&和wait改造示例二概述我们知道shell中的命令都是串行执行的,如果想要充分利用服务器的资源,就需要些小技巧了。假定业务上多个业务逻辑没有先后关系,每个脚本的执行时间也很长 ,推荐并行执行。一般情况下,我们会把每个业务逻辑写到一个单独的脚本里,在服务器上逐一调用,每次都要手工去敲命令。如果我们把这些脚本放到一个调用脚本里呢? 执行的时候去调用这...原创 2019-02-19 21:57:56 · 44365 阅读 · 14 评论 -
Shell-通过shell启动Java类中的main方法 + 通过Shell启动jar包
Java程序 运行在linux主机上, 通过shell脚本启动为进程。 Java程序中 通过定时任务,设置访问Hbase的时间间隔,设置告警规则,比如三次获取Hbase中的数据失败,则调用存过,遍历配置的告警号码,插入短信中间表,实现短信的发送。 项目结构如下 启动脚本分析根据服务器上JDK 以及工程部署路径 修改相应的#JDK所在路径 APP_HOME 启动入口类APP_MAI原创 2015-12-11 02:34:45 · 14299 阅读 · 0 评论 -
在 Shell 脚本中执行语法检查调试模式
shell 脚本调试系列Linux 中启用 Shell 脚本的调试模式在 Shell 脚本中执行语法检查调试模式 在 Shell 脚本中跟踪调试命令的执行概述写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工作。在本系列的这一部分,我们将了解如何使用语法检查调试模式。记住我们之前在本系列的 Linux 中启用 Shell 脚本的调试模式 中解释了不同原创 2017-01-15 20:14:51 · 19582 阅读 · 0 评论 -
Shell脚本攻略05-数组和关联数组
概述之前梳理的博文 Shell 数组 http://blog.youkuaiyun.com/yangshangwei/article/details/52372608数组是shell脚本非常重要的组成部分,它借助索引将多个独立的数据存储为一个集合。普通数组只能使用整数作为数组索引。 Bash也支持关联数组,它可以使用字符串作为数组索引。在很多情况下,采用字符串式索引更容易理解,这时候关联数组就派上用场了。原创 2016-12-08 01:03:08 · 12888 阅读 · 0 评论 -
Shell 输入/输出重定向
概述大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。重定向命令需要注意的是文件描述符: 0 通常是标准输入(STDIN), 1 是标准输出(STDOUT), 2 是标准错误输出(STDERR)。输出重定向语法重定原创 2016-08-31 21:09:38 · 14801 阅读 · 1 评论 -
Shell 基本运算符
概述Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号 ` 而不是单引号 ‘):#!/bin/bashval=`expr 2原创 2016-08-30 20:37:05 · 14656 阅读 · 1 评论 -
Shell echo-使用echo实现更复杂的输出格式控制
语法Shell 的 echo 指令是用于字符串的输出。命令格式:echo string当然也可以使用echo实现更复杂的输出格式控制。复杂输出格式1.显示普通字符串echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo It is a test2.显示转义字符echo "\"It is a test\""结果将是:"It is a test"同样,双引号原创 2016-08-30 21:03:22 · 21009 阅读 · 0 评论 -
Shell 函数
语法linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[ function ] funname [()]{ action; [return int;]}说明:1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,原创 2016-08-30 23:30:33 · 12337 阅读 · 0 评论 -
Shell 流程控制
概述和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):<?phpif (isset($_GET["q"])) { search(q);}else { // 不做任何事情}在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else。if elseifif 语句语法格式:if conditionthen co原创 2016-08-30 22:45:47 · 12007 阅读 · 0 评论 -
Shell printf 命令
上篇博文我们说了 Shell echo-使用echo实现更复杂的输出格式控制这篇博文我们来学习 Shell 的另一个输出命令 printf。语法printf 命令模仿 C 程序库(library)里的 printf() 程序。标准所定义,因此使用printf的脚本比使用echo移植性好。printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右原创 2016-08-30 21:45:05 · 17095 阅读 · 0 评论 -
Shell 数组
概述数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。 Shell 数组用括号来表示,元素用”空格”符号分割开,语法格式如下:array_name=(value1 ... valuen)实例定义数组#!/bin/bashmy_array=(A B "C" D)我们也可以使用下标原创 2016-08-30 20:19:50 · 12707 阅读 · 0 评论 -
Shell 变量
规则定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="testName"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。除了显式地直接赋值,还原创 2016-08-29 21:17:36 · 11881 阅读 · 0 评论 -
Shell 文件包含
概述和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。语法Shell 文件包含的语法格式如下:. filename # 注意点号(.)和文件名中间有一空格或source filename栗子创建两个 shell 脚本文件。 test1.sh 代码如下:#!/bin/bash# author: 小工匠# url: http://blog.c原创 2016-08-31 21:47:22 · 12529 阅读 · 0 评论 -
Shell脚本攻略04-玩转文件描述符及重定向
概述文件描述符是与文件输入、输出相关联的整数。它们用来跟踪已打开的文件。最常见的文件描述符是stdin、 stdout和stderr。我们甚至可以将某个文件描述符的内容重定向到另一个文件描述符中。下面给出一些对文件描述符进行操作和重定向的例子。理论知识在编写脚本的时候会频繁使用标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。通过内容过滤将输出重定向到文件是我们平日里的基本原创 2016-12-04 18:03:42 · 13767 阅读 · 0 评论 -
Shell脚本攻略03-使用shell进行数学运算
概述无论哪种编程语言都少不了算术操作,在这则攻略中,我们将会研究在shell中进行算术运算的各种方法。原创 2016-12-03 23:31:05 · 13015 阅读 · 0 评论 -
Shell脚本攻略01-简介/终端打印
概述 终端打印 玩转变量与环境变量 使用函数填加环境变量 通过shell进行数学运算 玩转文件描述符与重定向 数组和关联数组 使用别名 获取终端信息 获取、设置日期及延时 调试脚本 函数和参数 将命令序列的输出读入变量 以不按回车键的方式获取字符”n” 运行命令直至执行成功 字段分隔符和迭代器 比较与测试简介原创 2016-12-01 02:31:53 · 13398 阅读 · 0 评论 -
Shell脚本攻略02-玩转变量与环境变量
变量是任何一种编程语言都必不可少的组成部分,用于存放各类数据。脚本语言通常不需要在使用变量之前声明其类型。只需要直接赋值就可以了。在Bash中,每一个变量的值都是字符串。无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。有一些特殊的变量会被shell环境和操作系统环境用来存储一些特别的值,这类变量就被称为环境变量。原创 2016-12-03 00:29:17 · 14627 阅读 · 0 评论 -
Shell test命令
概述Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。或者使用 [ ] 来判断数值测试#!/bin/bashnum1=100num2=100if test $[num1] -eq $[num2]then echo '两个数相等!'else echo '两个数不相等!'fi输出结果:两个数相等!字符串测试#!/bin/ba原创 2016-08-30 22:11:43 · 13013 阅读 · 0 评论 -
Shell遍历hadoop目录的批量操作
需求背景每天产生3T(约2.5W个gz压缩文件)的DPI日志文件,因存储等各种问题,需要尽可能的节约存储。日志文件中有26个字段,根据业务需求需要提取6个字段。解决方法通过shell脚本通过MR程序(推荐,本篇不做论述)结论: 经验证得出的结论shell脚本大约5~10S处理一个文件,比较慢,对于这样大量且分散的情况,不推荐,但可以提供一个思路。 根据实际情况处理步骤原创 2016-01-05 09:25:19 · 16245 阅读 · 1 评论 -
Shell 正则表达式
什么是正则表达式正则表达式是用于描述字符排列和匹配模式的一种语法规则。 它主要用于字符串的模式分割、匹配、查找以及替换操作。概念看看就行,为了保证博文的完整性,记录下,其实没太大用….正则表达式的分类 1.基本的正则表达式(Basic Regular Expression 又叫Basic RegEx 简称BREs) 2.扩展的正则表达式(Extended Regular Expressi原创 2016-09-07 19:32:10 · 12852 阅读 · 0 评论 -
Shell 概述
简介Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。Shell 脚本Shell 脚本(shell sc原创 2016-08-26 00:29:57 · 12352 阅读 · 2 评论 -
Shell 传递参数
概述$n我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……实例以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:#!/bin/bash# author:xiaogongjiang# date:2016-08-29echo "Shell 传递参数实例!";e原创 2016-08-29 22:23:14 · 12319 阅读 · 0 评论