Как просмотреть историю bash, выполненную ПК1 на ПК2 с помощью Ant sshexec - PullRequest
0 голосов
/ 08 декабря 2010

в настоящее время есть 2 ПК, ПК1 и ПК2.У меня есть скрипт Ant на ПК1, он будет выполнять команды bash на ПК2 с помощью задачи sshexec, фрагмент может выглядеть следующим образом:

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

на практике команда сложная, я даю echo "Hello World!"для примера.

Я хочу посмотреть, что именно команда выполнила на ПК2, но я не знаю, как это сделать.Я погуглил и обнаружил, что .bash_history сохранит удаленно выполненные команды одним входом в систему с использованием ssh-подобного терминала.

Кажется, это может помочь, но попытка не удалась, файл .bash_history не будет записывать командывыполняется задачей sshexec удаленно.

Итак, SOS, пожалуйста, помогите.Заранее спасибо.

Редактировать:

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

Приложение:

$ cat / var / log / sshd.log

8 дек. 17:36:29 brownshen launchproxy [1373]: / usr / libexec / sshd-keygen-wrapper: Соединение с: 10.224.105.186 по порту: 4090 8 дек. 17:36:30 brownshen sshd [1376]: в pam_sm_authenticate (): не удалось определить имя участника Kerberos.8 дек. 17:36:30 brownshen sshd [1374]: Принята интерактивная клавиатура / pam для zhouvega от порта 10.224.105.186, порт 4090 ssh2, 8 декабря 17:36:30 brownshen com.apple.SecurityServer [23]: сессия 0x3096eb создана 8 декабря.17:36:30 brownshen com.apple.SecurityServer [23]: атрибуты сеанса 0x3096eb 0x20 8 декабря 17:36:30 brownshen com.apple.SecurityServer [23]: сеанс 0x3096eb мертв 8 декабря 17:36:30 brownshen com.apple.SecurityServer [23]: Уничтожение хостов аутентификации 8 дек. 17:36:30 brownshen com.apple.SecurityServer [23]: Сеанс 0x3096eb уничтожен

Ответы [ 2 ]

0 голосов
/ 08 декабря 2010

Вам нужно будет убедиться, что ваш скрипт действительно выполняется 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 для включения трассировки и захвата стандартного вывода в файл.

0 голосов
/ 08 декабря 2010

Взгляните на это: http://www.unix.com/unix-advanced-expert-users/4722-ssh-command-logging.html

Сначала я подумал, что вы можете изменить оболочку, указанную в passwd, на оболочку оболочки, которая регистрирует все входные данные, но я думаю, что подход sshd лучше,

И, если у вас нет веских причин (ввод пользователя?), Вы должны использовать SSH-ключи для автоматического входа вместо сохранения паролей.

...