Eu tenho vários diretórios montados através do sshfs . Às vezes, recebo desconexões do servidor (não configurável por mim). Eu costumo montar os diretórios assim
sshfs [email protected]:/home/user /mnt/example
Quando um servidor se desconecta, o subsistema sshfs não desmonta / libera o diretório, mas o bloqueia inacessível. A montagem ainda é visível ao digitar mount
. Quando digito
ls /mnt/example
o processo fica bloqueado (também Ctrl+ cnão ajuda). Eu faço
sudo umount -l /mnt/example
# find pid of corresponding process:
ps aux | grep example.com
kill -9 <pid of locked sshfs process>
Existe uma maneira melhor de lidar com isso? Obviamente, o sshfs deve fazer a quantidade e limpar ... Idealmente, ele se reconectaria automaticamente.
Respostas:
Você pode executar o sshfs com a opção "reconectar". Usamos sshfs com PAM / automount para compartilhar arquivos do servidor para cada estação de trabalho em nossa rede. Usamos -o reconnect como parâmetro para sshfs, principalmente porque nossos usuários suspenderam seus computadores e, quando ativados, os sshfs não se reconectariam (ou responderiam, ou algo assim).
Por exemplo:
Apenas uma observação: se o computador remoto estiver realmente inoperante, o sshfs poderá ficar sem resposta por um longo tempo.
fonte
Isso pode ser resolvido diminuindo o tempo limite. Adicione o seguinte a
$HOME/.ssh/config
ou/etc/ssh/ssh_config
:Isso resulta em um tempo limite de 45 segundos.
fonte
sshfs
não lida com a morte dossh
processo subjacente normalmente.Eu tenho um servidor que eu uso para armazenamento e, por falta de espaço onde moro, eu o mantenho em outro local. Para trazer os arquivos para minha rede, eu uso um raspberry pi que monta os arquivos do servidor usando sshfs.
Recentemente, tive que atualizar para o raspbian jessie devido a uma falha de energia e percebi que os sshfs se tornam seriamente instáveis. As pastas seriam montadas corretamente, mas depois de algum tempo eu não conseguiria conectar-me a elas e o raspberry pi congelaria se eu quisesse listar o conteúdo das montagens.
O que eu tentei foi:
mas sem dados! Até eu modificar o arquivo fstab da seguinte maneira:
E funciona! Não há mais desconexões! Parece que o sshfs não lê o arquivo de configuração ssh por algum motivo e os sinais keep alive nunca foram enviados.
fonte
Isso soa como um trabalho para autofs. É bastante hábil em lidar com montagens de rede de vários tipos (nfs, samba, sshfs, você escolhe) e perceber quando essas coisas precisam ser remontadas. Ele também pode desmontá-los após períodos de desuso e montá-los quando uma solicitação do sistema de arquivos é feita.
fonte
Se ainda houver pessoas com esse problema, ainda não consegui consertá-lo. Eu encontrei uma solução alternativa de trabalho.
O script ruby a seguir fez o truque. Ele cria uma pasta chamada "keepalive" repetidamente. Apenas continue executando isso até o infinito.
Não sei por que isso funciona. Mas parece resolver o meu problema onde estou inativo por um minuto e tudo congela. Ele apenas tenta criar uma pasta no ponto de montagem e isso parece impedir que ela desconecte e congele tudo de alguma forma.
fonte
while true; do mkdir -p /x/y; sleep 2; done