首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >报警端口状态改变

报警端口状态改变
EN

Stack Overflow用户
提问于 2020-03-18 13:47:33
回答 1查看 30关注 0票数 0
代码语言:javascript
复制
#!/bin/bash
while :
do
if lsof -i :4444 | grep ESTABLISHED ;
then 
    paplay Alarm_Buzzer.ogg
fi
done

我正在尝试创建一个脚本来连续检查端口的状态。如果状态发生变化,脚本应该播放声音(一次)并继续检查更改。

港口有两个州:LISTENESTABLISHED

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-18 13:56:15

澄清后;

获得当前端口state

  • Continuously的
  1. 启动脚本
  2. 检查更改,如果是
    • 覆盖last,则播放声音(如果状态为changed

)

代码语言:javascript
复制
#!/bin/bash

# Port state at begin of script
# The awk part parses the string to only the last column containing;
# (LISTEN) OR (ESTABLISHED)
last=$(lsof -i :4444 | awk '{print $NF}')

# Continuously
while true; do

    # Get fresh port state
    state=$(lsof -i :4444 | awk '{print $NF}')

    # If it changed
    if [ "$state" != "$last" ]; then

        # Play sound
        paplay Alarm_Buzzer.ogg

        # Remember the new state
        last="$state"
    fi

    # No need to check so fast, sleep for a while (Thx @tomgalpin)
    sleep 1
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60740924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档