目前有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被破坏
答案 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捕获到文件,而不是使用历史记录。