我一直这样做。把你的命令放在一个(
)
块中,它将作为一个子shell运行,完全是串行的一切。我正在运行Windows PuTTY并连接到Linux和AIX服务器。尝试一下。
(
Command1
Command2
Command3
)
在实践中,我可能会声明我想运行的许多100S的巨大的负荷,在记事本++或什么的。所以我将它们复制到剪贴板,然后在腻子:
(
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
)
EDIT2内联函数。所有可粘贴到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
不幸的是,远程服务器没有进行日志记录。另外,我需要捕获的是每个命令的返回文本。 – user3329270
那么,登录本地计算机仍然应该看到一个SSH连接。 Plink肯定会允许你捕获服务器对你正在运行的命令的响应。 – binaryatrocity
如此接近,但plink的问题在于,即使在保存的会话中启用了日志记录,它也不会执行任何Putty风格的日志记录。我可以将输出重定向到日志文件(即>> c:\ temp \ log.txt),但远程服务器返回的错误不会显示在日志中,只显示成功消息。 – user3329270