【问题标题】:linux -- determine what service was running on a down portlinux -- 确定什么服务在一个关闭的端口上运行
【发布时间】:2016-07-03 09:43:02
【问题描述】:

我需要编写一个 bash 脚本:

-- 将ip地址和端口列表作为标准输入,

--检查端口是向上还是向下,

-- 如果端口关闭,则通过 ssh 重启服务

让前两个工作正常,但是我被困在最后一部分,确定什么服务在关闭端口上运行,因为我可能不知道机器应该运行什么服务。 lsof、netstat 没有用,因为服务已关闭。

假设此脚本将在用户计算机上运行以检查服务器状态并自动重新启动任何关闭的服务。众所周知,某些服务可能会将 /etc/services 中列出的端口用于其他服务(例如,cpanel 客户门户使用 2083,/etc/services 将其列为 radsec)。

任何帮助都非常感谢,谢谢!

【问题讨论】:

    标签: linux bash application-restart


    【解决方案1】:

    无法确定非运行应用程序可能使用了哪些非标准端口。您可以做的就是检查未运行的服务,并(可能)重新启动未运行的服务。

    即使这样做也会遇到问题:

    • 某些服务可能由于其他原因(除了连接中断)而无法运行
    • 当询问某些服务是否正在运行时,它们可能不会给出有用的状态(例如,Apache Tomcat 似乎附带的服务脚本永远不会完成超过一半的工作)。

    【讨论】:

    • 我认为会是这样,但只是确保我没有忽略某些东西。我的老派会坚持找出“为什么”港口没有处于应有的状态。因此,看起来必须将文件映射端口传递给每个服务器或其他东西的服务。
    • 类似的东西。我只担心配置防火墙时的端口。否则,通常足以查看服务是否在应该运行时运行或在应该运行时停止(对于当前运行级别)。一个脚本将有助于验证这一点(我在付费工作中这样做,但不知道有用的免费版本)。
    猜你喜欢
    • 2020-08-10
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 2012-12-28
    • 2020-10-25
    • 2015-05-01
    • 2013-02-19
    相关资源
    最近更新 更多