如何通过Ant sshexec查看PC1在PC2上执行的bash历史记录

时间:2010-12-08 07:11:16

标签: bash ant history ant-contrib

目前有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上执行的命令究竟是什么,但我不知道该怎么做。 我用Google搜索并发现.bash_history将使用类似ssh的终端通过一次登录保存远程执行的命令。

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

所以SOS,请帮忙。提前谢谢。

修改

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

附件:

$ cat /var/log/sshd.log

  

Dec 8 17:36:29布朗   launchproxy [1373]:   的/ usr /的libexec / sshd的-密钥生成的包装器:   连接自:10.224.105.186 on   port:4090 Dec 8 17:36:30 brownshen   sshd [1376]:在pam_sm_authenticate()中:   无法确定Kerberos主体   名称。 12月8日17:36:30布朗申   sshd [1374]:接受   键盘互动/ pam为zhouvega   从10.224.105.186端口4090 ssh2 Dec   8 17:36:30布朗   com.apple.SecurityServer [23]:Session   0x3096eb创建于12月8日17:36:30   brownshen   com.apple.SecurityServer [23]:Session   0x3096eb属性0x20 Dec 8   17:36:30布朗   com.apple.SecurityServer [23]:Session   0x3096eb死了12月8日17:36:30   brownshen   com.apple.SecurityServer [23]:杀戮   auth主持12月8日17:36:30布朗申   com.apple.SecurityServer [23]:Session   0x3096eb被破坏

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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打开跟踪并将stdout捕获到文件,而不是使用历史记录。