0

目前有 2 台 PC,PC1 和 PC2。我在 PC1 上有一个 Ant 脚本,该脚本将使用 sshexec 任务在 PC2 上执行 bash 命令,代码片段可能如下所示:

<sshexec 
 host="${IPofPC2}"
 username="${USERofPC2}"
 password="${PASSofPC2}"
 command='echo "Hello World!"'
 trust="true"></sshexec>

在实践中,命令是一个复杂的命令,我举echo "Hello World!"个例子。

我想看看在 PC2 上执行的命令到底是什么,但我不知道该怎么做。我用谷歌搜索,发现.bash_history将使用类似 ssh 的终端通过一次登录保存远程执行的命令。

似乎这可能会有所帮助,但尝试没有成功,该.bash_history文件不会记录 sshexec 任务远程执行的命令。

所以SOS,请帮助。提前致谢。

编辑:

#/etc/syslog.conf
!sshd
*.*     /var/log/sshd.log

附件:

$cat /var/log/sshd.log

12 月 8 日 17:36:29 brownshen launchproxy[1373]:/usr/libexec/sshd-keygen-wrapper:连接来自:10.224.105.186 端口:4090 12 月 8 日 17:36:30 brownshen sshd[1376]:在 pam_sm_authenticate( ): 无法确定 Kerberos 主体名称。12 月 8 日 17:36:30 brownshen sshd[1374]:从 10.224.105.186 端口 4090 ssh2 接受 zhouvega 的键盘交互/pam 12 月 8 日 17:36:30 brownshen com.apple.SecurityServer[23]:会话 0x3096eb 创建于 12 月 8 日17:36:30 brownshen com.apple.SecurityServer[23]:会话 0x3096eb 属性 0x20 12 月 8 日 17:36:30 brownshen com.apple.SecurityServer[23]:会话 0x3096eb 死亡 12 月 8 日 17:36:30 brownshen com.apple .SecurityServer[23]:杀死身份验证主机 12 月 8 日 17:36:30 brownshen com.apple.SecurityServer[23]:会话 0x3096eb 被破坏

4

2 回答 2

0

您需要确保您的脚本实际上是由 Bash 执行的,而不是sh. 然后,将这些添加到脚本的开头:

HISTFILE=$HOME/.bash_history 
set -o history

选择不同的文件以将历史记录与用户的交互式历史记录分开保存。您可以使用set -o history打开和关闭历史保存set +o history。您可以选择性地使用它来仅保存部分脚本。

在脚本末尾添加此代码以将内存中的历史记录写入文件:

history -w

请注意,该HISTSIZE变量会影响存储在内存中的历史记录行数。默认值为 500,可以通过执行脚本快速填充。该HISTFILESIZE变量也默认为 500,同样的问题也适用。您可能需要在脚本中将这些变量设置为更大的值并设置HISTFILESIZE' also in the user's startup file (e.g.~/.bashrc`),这样如果您使用相同的历史文件,它就不会在交互使用期间被截断。

请注意,对于某些用途,您可以使用而不是使用历史记录set -x来打开跟踪并将标准输出捕获到文件中。

于 2010-12-08T11:29:07.620 回答
0

看看这个:http ://www.unix.com/unix-advanced-expert-users/4722-ssh-command-logging.html

我的第一个想法是您可以将 passwd 中指定的 shell 更改为记录所有输入的 shell 包装器,但我认为 sshd 方法更好。

而且,除非您有充分的理由(用户输入?),否则您应该使用 SSH 密钥进行自动登录,而不是保存密码。

于 2010-12-08T07:22:09.280 回答