gpt4 book ai didi

linux - 为什么 pssh 命令在 sudo 用户时不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:30 25 4
gpt4 key购买 nike

下面是我的脚本的一部分,但我正在努力寻找解决方案。我正在使用 pssh 命令和 awk 来过滤用户输入操作系统命令中的特定列。使用 pssh 命令的 awk 只有在对任何用户执行 sudo 时才会出现问题。

在下方提供正确的输入。

pssh -h /tmp/hosts -i 'echo $(echo ), $(uptime|awk '\''{print $3}'\'')'
[1] 13:15:40 [SUCCESS] Host1
, 75
[2] 13:15:40 [SUCCESS] Host2
, 59
[3] 13:15:40 [SUCCESS] Host3
, 147

但是当 sudo 到 quser 时,下面为我提供了错误的输入(给出了 uname -a 的输出)。

sudo -i -u quser pssh -h /tmp/hosts -i 'echo $(echo ), $(uptime|awk '\''{print $3}'\'')'
[1] 13:16:11 [SUCCESS] host1
, 13:16pm up 147 days 4:48, 1 user, load average: 0.02, 0.05, 0.01
[2] 13:16:11 [SUCCESS] host2
, 13:16pm up 59 days 3:04, 0 users, load average: 0.52, 0.29, 0.22
[3] 13:16:11 [SUCCESS] host3
, 13:16pm up 75 days 3:38, 0 users, load average: 0.03, 0.02, 0.00

最佳答案

我很确定您的引用不完整,即您的 $3 在某处丢失了,您得到了这个:

 $ echo $(echo ), $(uptime|awk '{print}')
, 16:54:39 up 7 days, 1:36, 14 users, load average: 0.30, 0.27, 0.27

在这种情况下,我总是建议启用 shell 调试,即

$ set -x; echo $(echo ), $(uptime|awk '{print}')
++ echo
++ uptime
++ awk '{print}'
+ echo , 16:56:14 up 7 days, 1:37, 14 users, load average: 0.16, 0.25, 0.26
, 16:56:14 up 7 days, 1:37, 14 users, load average: 0.16, 0.25, 0.26

我认为您所缺少的就是也引用 $,即。

$ pssh -h /tmp/hosts -i 'echo $(echo ), $(uptime|awk '\''{print \$3}'\'')'

要获得正确的引用,您可能需要使用 \ 的数字。

关于linux - 为什么 pssh 命令在 sudo 用户时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54502821/

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