跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 写了个 bash 脚本用于 3P 互查
未分類
15 1 月 2021

写了个 bash 脚本用于 3P 互查

写了个 bash 脚本用于 3P 互查

資深大佬 : vision1900 3

3P => Program, Pid, Port

在 Linux 下有好几种工具来做 program(程序名), pid(进程号), port(端口) 之间的对应

1. ps 做了 pid 和 program 之间的对应 2. netstat 做了 port 和 pid/program 之间的对应 3. pgrep 做了 program 和 pid 之间的对应 ... 

ps 和 netstat 很强大,但是参数多而且很多输出列其实无关紧要,pgrep 默认不是 exact match, 比如 pgrep ss 会把 sshd 的 pid 也输出出来。

更重要的是,对于普通用户来说,很多只关心 3 个核心参数: program, pid 和 port

今天我用 bash 实现了三者互查:

1. 给 port 会输出对应的 pid 和 program name;  2. 给 pid 会输出 program name 和 port(s) (如果没有会是 none, 如果有多个会以空格为间隔输出) 3. 给 program 会输出所有对应进程的 pid, 以及每个 pid 对应的 port(s) 

当然如果输入的参数无效,回给提示并返回一个非 0 的状态码

这是地址: https://github.com/librz/shell_scripts/blob/main/3p.sh

我是在 .zshrc 里写了一个 alias:

alias 3p="bash <(curl -sL https://raw.githubusercontent.com/librz/shell_scripts/main/3p.sh)" 

这样就能直接用了, 以下是一些例子:

# who's listening on port 9000? 3p --port 9000  # I have pid 1234, what kind of program is it? is it using any port? 3p --pid 1234  # I want to see all process and ports related to node 3p --program node 

我知道很多前辈肯定已经写过这种程序,但自己还是要写一遍,哈哈

大佬有話說 (27)

  • 資深大佬 : yuananf

    看标题准备举报了,进来一看,打扰了

  • 資深大佬 : jinliming2

    emmmm,alias 里写个 curl 真的不觉得慢吗……要是网突然断了怎么办……
    我是习惯于直接 lsof 。
    比如端口 lsof -i:9000 、lsof -iTCP:9000 、lsof -iUDP:9000
    查 PID 的端口:lsof -i -ap1234 、lsof -iTCP -ap1234 、lsof -iUDP -ap1234
    查进程名的端口:lsof -i -ac node 、lsof -i:TCP -ac node 、lsof -i:UDP -ac node 。并且支持正则:lsof -i -ac ‘/Node$/i’

  • 資深大佬 : sleepm

    ss -antpl
    netstat -luntap
    lsof 最方便,不用装默认就有

  • 資深大佬 : Pastsong

    上来就跑一个网络地址的未知脚本也太不安全了吧。。

  • 資深大佬 : felixcode

    ls 命令参数太多输出列太多也做个 curl 脚本?

  • 資深大佬 : fzinfz

    代码有点长。。。我写了个一行版本:
    netstat_keyword(){ netstat -lntup | grep –color -P “b$1b”; }

    感觉也能实现主需求?

  • 資深大佬 : ihwbunny

  • 資深大佬 : df4VW

    确实不是我想的 3p

  • 資深大佬 : blogfeng

    进来前想举报,进来后更想举报。

  • 資深大佬 : css3

    @jinliming2 学习了,老哥

  • 資深大佬 : nieqibest

    @sleepm 啥版本默认装 lsof

  • 資深大佬 : masker

    这。。。。。。。

  • 資深大佬 : sleepm

    @nieqibest ubuntu 20.10 还有 20.04.1 LTS

  • 資深大佬 : DevAlex

    略感失望 0.0

  • 資深大佬 : Tumblr

    抱着猎奇的心情来

  • 資深大佬 : yanzhiling2001

    centos 好像没有默认张 lsof

  • 資深大佬 : gstqc

    Shell 配置里直接写个远程脚本……

  • 資深大佬 : matrix67

    @gstqc #17 的确不妥,而且现在还有个 sudo 提权漏洞,分分钟给你….

  • 資深大佬 : ScotGu

    哎哟~ 额, 学习了!谢谢 LZ 分享。

    转头骂骂咧咧走开了。

  • 資深大佬 : Aynamic

    嫌弃列多用 awk 选择需要的列不就好了?

  • 資深大佬 : IceMimosa

    奇怪的词语又增加了。。

  • 資深大佬 : dimlau

    不是我理解的那种使用场景诶……

  • 資深大佬 : piecezzz

    啊这

  • 主 資深大佬 : vision1900

    @jinliming2 原来 lsof 这么强大,之前有遇见过,list open files, 看来是把 sockets 也看成文件了,回头再看看,学习了

  • 資深大佬 : tikazyq

    我 xx 都拖了,就给看这

  • 資深大佬 : someonedeng

    没点进来还以为什么敏感的查询网站呢

  • 資深大佬 : Thresh

    确实不是我想想中的 3p,差评。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具