首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何Bash脚本本身中获得其所在目录

问: 如何Bash脚本本身中获得其所在目录? 我想使用Bash脚本作为另一个应用程序启动器。我想把工作目录改为Bash脚本所在目录,以便我可以对该目录下文件进行操作,像这样: $ ....但是在相对路径方式去执行脚本时,获取目录信息是相对路径,不能满足其他需要获取绝对路径场景。 如果要获取绝对路径,可以使用如下方法: #!...$script_dir 其中第3行代码,无论从何处调用它,都将为你提供脚本完整目录路径。...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录绝对路径: #!.../(点-斜杠),以便在bash中运行它 shell脚本对编码和行尾符敏感吗

26720

如何利用Bash脚本监控Linux内存使用情况

前言 目前市场上有许多开源监控工具可用于监控 Linux 系统性能。当系统达到指定阈值限制时,它可以发送电子邮件警报。...如果你只有很少系统并且想要监视它们,那么编写一个小 shell 脚本可以使你任务变得非常简单。 在本教程中,我们添加了两个 shell 脚本来监视 Linux 系统上内存利用率。...方法-1:用 Linux Bash 脚本监视内存利用率并发送电子邮件 如果只想在系统达到给定阈值时通过邮件获取当前内存利用率百分比,请使用以下脚本。 这是个非常简单直接单行脚本。...* 如何使用 shell 脚本自动执行日常活动? 方法-2:用 Linux Bash 脚本监视内存利用率并发送电子邮件 如果要在邮件警报中获取有关内存利用率更多信息。...# crontab -e */5 * * * * /bin/bash /opt/scripts/memory-alert.sh 注意:由于脚本计划每 5 分钟运行一次,因此你将在最多 5 分钟后收到电子邮件提醒

2.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

如何写出安全、基本功能完善Bash脚本

我本身也不是一个Bash脚本专家,但是我会在本文中跟你展示一个最基础最简单安全脚本模板,会让你写Bash脚本更加安全实用,你掌握了之后肯定会受益匪浅。...要检查stderr是不是交互式终端时行为,请在脚本中添加类似于上面的一行。然后执行它,将stderr重定向到stdout并通过管道将其发送到cat。...管道操作使输出不再直接发送到终端,而是发送到下一个命令,因此颜色会被禁用。 $ ....在其他语言中,您应该使用一个内置解析器或可用库,但是,好吧,这是Bash。 模板中有一个示例标志(-f)和命名参数(-p)。只需更改或复制它们添加其他参数。之后不要忘记更新usage()。...这些资源将指导您如何使小型脚本和大型CLI应用程序可靠,参考如下: Command Line Interface Guidelines(https://clig.dev/) 12 Factor CLI

53430

如何在Linux 系统上比较Bash脚本字符串?

Bash 脚本中比较字符串需求相对普遍,可用于在继续执行脚本下一部分之前检查某些条件。 字符串可以是任何字符序列。...在本教程中,我们将向您展示如何在Linux 系统上比较Bash 脚本字符串,我们将在一个简单 if/else Bash 脚本上下文中展示这一点,这样您就可以看到在开发脚本时测试这种情况是如何工作...在本教程中,您将学习: 如何Bash 中比较字符串 比较字符串 if/else Bash 脚本示例 Bash 脚本:字符串比较示例 例1 在 Bash 脚本中,您通常会将一个或两个字符串存储为变量...总结 在本教程中,我们了解了如何Bash 脚本中比较字符串,尤其是在 Bash 脚本上下文中if/else。...当然,此功能可以扩展到更健壮脚本,这些脚本可以读取用户输入或使用 case 运算符等。这些都是在 Bash 中比较字符串所需所有比较方法。

3.8K00

如何给 Windows Terminal 增加一个新终端( Bash 为例)

然而我计算机上还安装了一个 Bash 可以如何添加到 Windows Terminal 里呢? 本文将介绍添加一个新终端应该如何修改配置。...下面是我添加 Bash 配置。如果你是通过安装 Git for Windows 而安装 Git Bash,那么默认路径就是 C:\Program Files\Git\bin\bash.exe。...guid; name 改为终端名称(本例中是 Bash,虽然不是必须,但强烈建议修改) Visual Studio 自带了一个 guid 生成工具,你可以在菜单工具中找到: 你也可以在网上搜索...你可以在你 Windows Terminal 中看到你新增 Bash 终端了。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后作品务必相同许可发布。

60740

shell流程控制-if判断语句

一、if介绍 如何写一个高可用性脚本,赋予脚本智能化,赋予脚本执行逻辑。...当我们在写程序时候,时常对上一步执行是否成功如何判断苦恼,当我们今天学习了if就可以解决你苦恼。...执行代码块X 结束 通过一段代码演示一下吧,通过一个脚本,判断两个整数关系 案例需求 判断内存使用率 60以下 ok 60以上 黄色警告 70以上 橙色严重警告 80以上.../bin/bash #1、条件 #判断内存使用率 #60以下 ok 绿色 32m #60以上 黄色警告 33m #70以上 粉色严重警告 35m #80以上 红色警告...7、写一个mysql binlog备份脚本,要求每天0点0分,计算机自动备份前一天binlog日志,打包后发送给备份服务器。

30910

Excel公式技巧06: COUNTIFS函数如何处理数组方式提供条件

这篇文章将详细讲解COUNTIFS/SUMIFS函数运行原理,特别是将包含多个作为条件元素数组传递给一个或多个Criteria_Range参数时。 先看一个示例,如下图1所示数据。 ?...但是,如果我们想考虑这些交叉选项,那么怎样才能统计所有可能对应条件?列B中是“Male”或“Female”而列C中是“Sea lion”或“Mite”,得出满足条件数量为7结果。...现在,如果我们试图给列D再添加一个条件,看看会发生什么。...并且,第三个数组中第三个元素“Roleplaying”在第一个数组中并没有相配对元素。 然而,Excel会继续构建适当大小数组容纳预期返回值,即上面看到2行3列数组。...理解Excel如何“看到”事物,将更好地了解Excel! 注:本技巧整理自excelxor.com,有兴趣朋友可以研阅原文。

4.8K42

Linux教程 - 在Shell脚本中声明和使用布尔变量示例

当从cron作业调用我们脚本时,特定任务可能会失败,然后我需要将failed转换为True。基于$failed,我需要发送一封电子邮件警告cron作业失败了。...那么,如何在Linux服务器上运行shell脚本中声明和使用布尔变量呢? Bash中没有布尔值。但是,我们可以根据需要将shell变量值定义为0(“False”)或1(“True”)。...不过,Bash也支持布尔表达式条件。让我们看看如何Bash中组合这两个概念来声明布尔变量,并在运行在Linux、macOS、FreeBSD或类unix系统上shell脚本中使用它们。...如何在Shell脚本中声明和使用布尔变量(例如“ true”和“ false”) 当然,我们可以将它们定义为字符串,并使我们代码更具可读性: #!...shell脚本示例中Bash布尔变量 下面是一个示例脚本: #!

16.3K21

Shell脚本编程

(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) 程序编程风格 过程式:指令为中心,数据服务于命令...对象式:数据为中心,命令服务于数据 shell是一种过程式编程 过程式编程 顺序执行 循环执行 选择执行 编程语言分类 编译型语言 解释型语言(shell是一种解释型语言) 图片 运行脚本...给予执行权限,通过具体文件路径指定文件执行 直接运行解释器,将脚本作为解释器程序参数运行 bash退出状态码 范围是0-255 脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决于exit...条件为假分支代码 fi 多分支选择结构 if 判断条件;then 条件为真的分支代码 elif 判断条件;then 条件为真的分支代码 else 条件为假分支代码 fi 练习题 练习1:判断两个数是否相等...条件是测真值,until条件式测假值 语法 until 条件测试;do 循环体 done 练习1:99乘法表 #while 写法 当判断条件为真则运行下面的内容 #!

2.1K20

写个简单项目自动部署脚本

我们jenkins为例,其本质就是从远程仓库拉取代码,然后本地编译打包,然后上传到目标服务器执行启动命令,简化过程如下: 那么在一些简单项目中,我们可不可以完全自己写一个脚本来做打包部署呢,答案是可以...2.基于java命令启动部署脚本 我们项目springboot-demo为例,创建项目路径: mkdir -p /opt/app/server/springboot-demo 编写部署脚本: cd...使用netstat命令检查端口已经监听成功,并且发送请求也能够正常处理: 这样我们通过脚本来实现java服务代码拉取、编译打包和服务启动已经成功了。...发送到对应告警平台,比如钉钉、飞书机器人等。...maven编译打包失败发送飞书告警为例: ROBOT_TOKEN="xxxxxx" REQ_PATH="https://open.feishu.cn/open-apis/bot/v2/hook/$ROBOT_TOKEN

15410

基于crontab和shell实现监控告警

我们大致采用服务器自身crontab调度能力和shell脚本来实现脚本定频执行来实现监控告警: 编写监控告警脚本,监控cpu、内存和磁盘(可以按需添加其他指标)使用状况 如果超过设定阈值,则通过相应平台...: 监控cpu,如果cpu超过80%,则发送告警到告警群 监控内存,如果内存使用率超过80%,则发送告警通知到告警群 监控磁盘,如果磁盘使用率超过80%,则发送告警通知到飞书告警群 手动执行脚本...但是,我们服务器负载监控,可能需要每5秒就要求执行某个shell脚本。那么就需要做一些小小改造才能实现。...2.脚本执行日志滚动 但是这里会带来一个隐藏问题,这里脚本和任务完全有我们自己控制,并没有使用logrotate来做日志切割和滚动,可能会因为监控脚本自身执行记录日志导致磁盘打满,那么我们需要自己清除历史日志...2024-05-13.log了,也就是验证了脚本执行日志保留一天,每天自动删除今天以前执行日志。

12210

zabbix-v4.0系列-配置短信告警功能

所以对于我们来说短信发送实现原理就是:在zabbix问题触发后自动调用我们短信发送脚本,通过脚本发送http请求来发送告警短信。 所以首先,我们需要指定我们脚本位置以及脚本入参。.../bin/bash CAT="/bin/cat" CURL="/usr/bin/curl" MOBILE_NUMBER=$1 # 手机号码 MESSAGE_SUBJECT=$2 # 短信主题...创建触发器动作 选择【triggers】-点击创建动作。 ? 填写自定义名称,如果不配置条件那么这个动作会响应所有触发器。 ?...[root@vm2 ~]# systemctl stop zabbix-agent 等待5分钟后,zabbix发出警告 ? 后台/tmp/SMS-SEND.log文件中打印出如下日志 ?...相关文章 zabbix-v4.0系列-自动发现并监控jvm8-简明扼要版 zabbix-v4.0系列-zabbix如何监控mongodb-v4.0.13分片集群1 zabbix-v4.0系列-zabbix4.0

2.5K50

shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警

shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警 具体步骤如下 1、创建钉钉Webhook机器人 安全设置这里我选用服务器出口IP 设定后,只有来自IP地址范围内请求才会被正常处理 (.../bin/bash # 设置警告阈值 THRESHOLD=80 # CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S") # 获取主机名和IP HOSTNAME=$(hostname...font> \n > ##### $(df -lPTh| grep $partition) \n " } } EOF ) # 发送告警...crontab -e 0 */4 * * * /opt/disk_usage_check.sh (图片点击放大查看) (图片点击放大查看) 每4个小时巡检一次 可以自行调整频率 4、测试 df...-PTh 找一个分区,/boot分区为例 dd if=/dev/zero of=/boot/test.iso count=1 bs=300M 让/boot分区超过阀值进行测试 然后手动执行 sh

23310

原 添加自定义监控项目,配置邮件告警,测

需求:监控某台web80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目图形展现 对于第一步,需要到客户端定义脚本 vim /usr/local/sbin/estab.sh...授权码=发邮件警告使用密码 然后到zabbix前端新创建一个报警。...测试警告: 说明:故意把监控项目更改成有问题, 设置触发器,让它告警....0 ,那么就会马上告警 点击Zabbix -->查看最近20个问题 可以看到动作完成1,说明可以正常发送邮件 #查看邮件,是可以收到告警邮件 #原本负载值更改为1了,就会马上告警,那么现在把负载值更回正常...(Anna) 说明:点击配置-->动作-->发邮件-->条件

63030

验证Apache log4j漏洞是否存在

在使用此脚本之前,请确保您已充分理解漏洞和其可能影响,以及您对目标环境授权和法律责任。另外,我们强烈建议您使用专业安全工具和方法来进行安全渗透测试,确保您活动合法、准确和安全。...确定目标:在发送恶意请求之前,最好确认目标主机是否存在Log4j漏洞,减少目标主机上噪音和风险。可以通过探测目标主机开放端口和服务类型来确定是否存在漏洞,并使用工具如Nmap等。...使用TLS/SSL:在发送请求时,最好使用安全通信协议和方法,例如TLS/SSL,确保数据机密性、完整性和真实性。...否则,将打印出一条消息,说明该系统没有受到漏洞影响。 请注意,上面的代码示例只是一个简单示例,并且可能需要进行调整才能与您测试环境完全匹配。...在实际情况中,还需要对测试脚本进行进一步调整确保其正确地验证apachelog4j漏洞,并输出有用信息和警告

1.5K50

Slackor:Go语言写一款C&C服务器

用于生成后门脚本 server.py Slackor服务器,在Linux上运行 agent.go golang后门 requirements.txt Python依赖 如何开始: go get github.com...输入help [COMMAND]查看该命令描述。...Slackor help - 显示帮助菜单 interact - 与代理交互 list - 列出所有已注册代理商 remove - 杀死并删除代理 revive - 向所有代理发送信号重新注册服务器...模块将在执行写入磁盘任务之前发出警告。执行shell命令时,请注意cmd.exe/ bash将执行。这可以在主机上监控。...是的,考虑到一些条件。当数据在传输过程中加密时,代理包含用于解密密钥。获取代理副本任何人都可以对其进行反向工程并提取API密钥和AES密钥。

1.8K10

第二章·监控系统-zabbix深入自定义监控项

; CLOSING -等待远程TCP对连接中断的确认; LAST-ACK - 等待原来发向远程TCP连接中断请求的确认; TIME-WAIT -等待足够时间确保远程TCP接收到连接中断请求的确认;...场景二:当zabbix报警服务器出现问题时候,例如MySQL挂了,运维人员在厕...没有及时处理,那一分钟后这个警告肯定要升级,从警告变成严重故障之类。...,每隔5分钟发送一次,总共2个步骤,所以发送2次 5)每次开始时间是如何计算呢,第一个立即开始: 1-2,3-4,4-5动作时间间隔是5分钟,所以在触发告警发送时间计算是5m+5m+5m=15m...6.服务端导⼊入模板 7.创建监控主机,链接新导⼊入模板,如果是已存在监控主机,增加我们刚导⼊入模板 zabbix企业微信报警(扩展) ---- 准备微信报警脚本, 脚本怎么写->脚本放在哪...---- 单击管理理->报警媒介类型->创建媒介类型  ---- 填写微信报警名称,以及脚本需要传⼊入参数,内容如下  {ALERT.MESSAGE} #发送内容 ---- 配置接收企业微信号

66610
领券