Como posso ver se os usuários estão logados no sftp?

10

Eu corro um servidor de arquivos linux para o meu escritório e nós usamos SFTP para parceiros remotos para fazer o login e baixar arquivos. Existe uma maneira de ver se existem conexões ativas ou logins para que eu possa saber quando é seguro executar a manutenção na máquina?

Como a máquina está quase sempre servindo arquivos grandes, a manutenção programada costuma ser interrompida devido a alguém fazer o upload

    
por jonnyflash 09.08.2011 / 21:04

3 respostas

11

Você também pode fazer:

ps -ef | grep '[s]shd' | grep -v ^root

que deve mostrar quaisquer sessões sshd (que são usadas para o sftp). Percebo na minha máquina que a linha de comando do meu processo sshd contém '$ USER @ notty', o que faz sentido, já que não estou logado com uma sessão de terminal. Você poderia apertar o grep acima com:

ps -ef | grep '[s]shd:.*@notty' | grep -v ^root

BTW: os colchetes no grep não devem ter o processo 'grep sshd' mostrado na lista de processos. [s] shd corresponde ao sshd, mas não corresponde a si próprio. Ele salva um 'grep -v grep'

    
por 09.08.2011 / 22:27
1

Eu acho que você pode usar o programa de linha de comando who para ver isso. Tenho notado alguns relatos de que isso não funciona, mas ainda acho que pode funcionar (talvez seja uma configuração ssh).

O sftp é construído sobre o SSH . Significa o "protocolo de transferência de arquivos SSH". E quando você estiver logado no ssh, 'quem' irá incluí-lo como um usuário logado com sua saída. Então, eu esperaria que isso funcionasse com sessões sftp ativas também.

Esta discussão de 2008 também sugere que você pode usar o 'netstat' para isso. Ele também inclui uma sugestão para executar "quem" via "assistir" para que você possa ver as atualizações sem fazer nada.

    
por 09.08.2011 / 22:01
1

Você também pode tentar   fuser -u ssh/tcp

    
por 04.10.2014 / 04:01

Tags