gpt4 book ai didi

awk - 给定主机名,从 ~/.ssh/config 获取主机

转载 作者:行者123 更新时间:2023-12-01 23:41:51 26 4
gpt4 key购买 nike

有没有办法在给定主机名的情况下从.ssh/config获取主机?例如

Host foo
Hostname 111.11.111.111
User root
Port 22

如果我知道主机,我可以获得主机名,如下所示:

~|> ssh -G foo | grep -E '\bhostname ' | cut -d " " -f 2
111.11.111.111

有什么办法可以反之亦然吗?我知道 IP (111.11.111.111) 但想要获取 foo

最佳答案

您能否尝试执行以下操作,添加一个从 ~/.ssh/config 文件获取主机名的操作。

第一个解决方案:在 GNU awk 中准备和测试。

awk -v ip="111.11.111.111" -v RS="" '$3=="Hostname" && $4==ip && $1=="Host"{print $2}'  ~/.ssh/config

或者

awk -v ip="111.11.111.111" -v RS="" '
$3=="Hostname" && \
$4==ip && \
$1=="Host"{
print $2
}' ~/.ssh/config

第二个解决方案:此处使用 tacawk

tac ~/.ssh/config | awk -v ip="111.11.111.111" '$1=="Hostname" && $NF==ip{getline;if($1=="Host"){print $2;exit}}'

关于awk - 给定主机名,从 ~/.ssh/config 获取主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55197833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com