Como obter os comandos emitidos em uma sessão ssh

4

Eu preciso listar todos os comandos executados em uma "sessão ssh". Eu uso várias sessões ssh para acessar servidores remotos. Então, quando eu sair de uma sessão, preciso executar os comandos nessa sessão.

Existe alguma opção para isso?

    
por peepeep 31.07.2013 / 08:11

3 respostas

6

Se você estiver executando o bash nos servidores remotos, ele manterá o histórico para você e você poderá recuperar esse histórico com o comando history .

Se você editar ~ / .bash_profile para incluir a seguinte linha:

export HISTTIMEFORMAT="%h/%d -- %H:%M:%S "

seu histórico também terá registros de data e hora (para tornar mais fácil descobrir o que você executou na sessão atual e o histórico antigo).

Quando o bash estiver sendo encerrado, ele executará o script ~/.bash_logut . Se você fizer a última linha deste script:

history

a última coisa que você terá deixado escapar de você enquanto estiver fechando a conexão será sua história - não apenas da sessão atual, infelizmente, mas os timestamps devem ajudá-lo a descobrir quais comandos eram da sessão atual e que eram velhos.

Se você não se importar em perder o histórico nas máquinas remotas entre as sessões, poderá adicionar

unset HISTFILE

para seus scripts de login. Quando o HISTFILE não está definido, o bash não salvará o histórico em um arquivo. Isso significa que o history que é executado no logout só pode mostrar a sessão atual.

    
por 31.07.2013 / 12:36
0

Usando o PuTTY (ou outros clientes ssh), você pode configurá-lo para "salvar" todas as informações da sessão.

Em PuTTY:

Session --> Login --> Session Login --> All session output

Outra opção poderia ser executar o comando

# history >> history.log

Antes de sair da sessão ssh e baixar o arquivo history.log

Isso listaria os últimos comandos executados.

Você pode até mesmo deixar o histórico saber quantos comandos devem ser lembrados

# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450

Espero que ajude

    
por 31.07.2013 / 08:15
-1

A segunda sugestão de Gonzalo Murillo para usar o comando history para capturar apenas o que você digitou (não a saída do comando) funcionará.

Se você quiser criar uma lista de comandos antes de se conectar a qualquer um dos servidores, você pode fazer o script com facilidade usando o python para automatizar tudo, se não precisar de interação.

    
por 31.07.2013 / 10:49