gpt4 book ai didi

putty - 将多个命令粘贴到 Putty - 串行处理?

转载 作者:行者123 更新时间:2023-12-04 23:01:39 27 4
gpt4 key购买 nike

我需要通过 Putty 在系统上执行大约 3000 个单独的命令。我通过复制 ~100 个命令并将它们粘贴到腻子 SSH session 中来做到这一点。它有效,但问题是 Putty 不会串行处理它们,并且输出会出现乱码。

有没有办法让 Putty 处理每个命令,等待返回然后处理下一个? Windows 命令提示符执行此操作,我认为有一种方法可以使用 Putty 执行此操作。

是的,我知道我可以把它放在一个 bash 脚本中,但是由于我无法控制的情况,这必须使用 SSH 并以一种可以在我们进行和记录时进行监控的方式来完成。

最佳答案

我一直这样做。将您的命令放入 ( )块,它将作为子shell运行它,完美地串行执行所有内容。我正在运行 Windows PuTTY 并连接到 Linux 和 AIX 服务器。尝试一下。

(
Command1
Command2
Command3
)

在实践中,我可能会在 Notepad++ 或其他任何地方运行大量的数百条语句。所以我将它们复制到剪贴板,然后在 PuTTY 中:
(   
paste in your wad here
)

编辑:如果您想分别记录每个语句的输出,您可以执行以下操作:
(
Command1 > /home/jon/command1output.txt
Command2 > /home/jon/command2output.txt
Command3 > /home/jon/command3output.txt
)

或者,如果您只想要一个大的输出流,您可以交错分隔符以便稍后阅读:
(
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "[`date`] Now running Command1 ..."
Command1
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "[`date`] Now running Command2 ..."
Command2
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "[`date`] Now running Command3 ..."
Command3
)

编辑2:使用内联函数的另一种变体。所有可粘贴到 PuTTY 中,具有完美的串行运行,记录为 command1:output1,command2:output2,... ,并且能够驱动 SQL*Plus。
(
function geniusMagic() {
echo " "
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
date
echo "RUNNING COMMAND:"
echo " "
echo "$*"
echo " "
echo "OUTPUT:"
echo " "
sh -c "$*"
}

geniusMagic df -m /home
geniusMagic 'printf $RANDOM | sed "s/0//g"'
geniusMagic 'echo "select count(*)
FROM all_tables;
" | sqlplus -s scott/tiger'
)

示例输出:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wed Jun 25 17:41:19 EDT 2014
RUNNING COMMAND:

df -m /home

OUTPUT:

Filesystem MB blocks Free %Used Iused %Iused Mounted on
/dev/hd1 1024.00 508.49 51% 3164 3% /home

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wed Jun 25 17:41:19 EDT 2014
RUNNING COMMAND:

printf $RANDOM | sed "s/0//g"

OUTPUT:

2767
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wed Jun 25 17:41:19 EDT 2014
RUNNING COMMAND:

echo "select count(*)
FROM all_tables;
" | sqlplus -s scott/tiger

OUTPUT:


COUNT(*)
----------
48

关于putty - 将多个命令粘贴到 Putty - 串行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887850/

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