单变量多值:批量检查软链接存在性的脚本实现及退出码设置问询
无需重复编写脚本!单个脚本即可批量检查多个软链接
当然不用为每个软链接单独写一份重复脚本啦!一个脚本就能搞定任意数量软链接的检查,还能精准返回监控所需的退出码(exit 0表示全部正常,exit 1表示至少有一个软链接异常)。
实现思路
- 把所有需要检查的软链接路径放进一个数组里,不管是4个还是n个,后续扩展都超级方便
- 遍历数组逐个检查每个链接的状态
- 用一个状态变量记录整体结果,只要有一个链接不达标,就把状态标记为异常
- 最后根据状态变量返回对应的退出码
完整可运行脚本
#!/bin/bash # 定义要检查的软链接列表,按需添加或删除即可 CHECK_LINKS=( "./link2" "./link3" "./link4" "./link5" ) # 初始化状态为正常(0代表无异常) STATUS=0 # 遍历每个软链接做检查 for link in "${CHECK_LINKS[@]}"; do # 检查路径是否为存在的软链接 if [ ! -L "$link" ]; then echo "⚠️ 错误:软链接 $link 不存在或不是有效软链接" # 只要有一个异常,就把状态设为1 STATUS=1 else echo "✅ 正常:软链接 $link 存在且有效" fi done # 根据最终状态返回退出码 exit $STATUS
关键细节说明
- 脚本里用的
-L参数是专门用来判断路径是否为已存在的软链接的;如果你的需求只是检查路径存在(不管是不是软链接),可以把-L换成-e - 状态变量
STATUS初始值为0,只要有一个链接检查失败,就会被设为1,脚本最终退出时会返回这个值,完美适配监控系统的状态判断 - 后续要新增检查的软链接,只需要在
CHECK_LINKS数组里添加新路径就行,完全不用修改核心逻辑 - 脚本会输出每个链接的检查结果,方便你快速定位异常链接
运行脚本后的结果:
- 所有软链接都正常时,脚本返回
exit 0,对应监控的正常状态 - 只要有一个软链接不存在或无效,脚本返回
exit 1,可以触发监控告警
内容的提问来源于stack exchange,提问作者Premkumar Waghmare
相关产品推荐
相关产品推荐

