Force reconectar na unidade sshfs montada via fstab

3

Eu tenho uma unidade sshfs remota que uso diariamente. Eu executei anteriormente o seguinte comando toda vez que eu inicializava meu computador.

sshfs -o Ciphers=arcfour -o Compression=no -o reconnect remote:dev ~/dev

Obviamente, não é super conveniente fazer isso manualmente a cada vez, então eu pensei em adicionar o controle remoto à minha tabela de sistemas de arquivos. Eu não estou familiarizado com a forma como o fstab é formatado, mas depois de ler um pouco sobre alguns blogs técnicos de "como fazer", decidi incluir a seguinte linha no meu arquivo /etc/fstab .

sshfs#wbarlow@remote:/home/wbarlow/dev /home/wbarlow/dev fuse defaults,users,idmap=user 0 0

Infelizmente, se houver uma falha na rede, a unidade às vezes fica inativa. Isso acontece talvez uma vez por dia - e quando tento reconectar manualmente (clicando na unidade no nautilus), recebo uma mensagem que diz "O terminal de transporte não está conectado".

A minha principal questão é esta: como posso colocar a opção -o reconnect que usei no comando terminal no meu ficheiro fstab? Acredito que isso impediria a desconexão da unidade devido a blips. / p>

Além disso, escolhi essa cifra porque é a mais rápida que meu servidor remoto suporta (eu acho) e removi a compactação porque a rede gigabit com fio é mais rápida do que o tempo gasto pela CPU para compactar o material. Seria ótimo se eu pudesse puxar essas opções para o meu fstab também, mas eu posso viver sem elas.

Se isso ajudar, aqui está minha informação de arquitetura do Kernel / OS:

[wbarlow ~]$ uname -r
4.1.3-200.fc22.x86_64
    
por Woodrow Barlow 05.08.2015 / 17:20

1 resposta

2

Para incluir as opções desejadas, você deve modificar sua entrada fstab como mostrado abaixo. Tenha cuidado, pois adicionar uma opção que não existe realmente fará com que seu sistema não inicialize.

sshfs#wbarlow@remote:/home/wbarlow/dev /home/wbarlow/dev fuse defaults,users,noauto,idmap=user,Ciphers=arcfour,Compression=no,reconnect 0 0

Eu testei por

  1. Inspecionando a saída de ps|grep ssh
  2. A execução de kill ssh não eliminou a montaria.

Eu tomei a liberdade de adicionar a opção noauto . Isso requer que a montagem não aconteça automaticamente, de modo que qualquer falha não pare o processo de inicialização (particularmente ao usar o systemd). Ele depende de você ter uma maneira conveniente de executar mount . Espero que o seu gerenciador de arquivos forneça isso, caso contrário, ele irá derrotar o ponto ...

Outra possibilidade é a opção nofail . Essa opção solicita uma inicialização bem-sucedida, mesmo se esse sistema de arquivos não conseguir montar "este dispositivo, se ele não existir". Infelizmente, descobrimos que o sshfs / fuse não implementou essa opção. Ironicamente, usar a opção nofail aqui garantirá falha.

Os documentos ( man fstab ) descrevem o quarto campo de uma entrada fstab:

The fourth field (fs_mntops)

This field describes the mount options associated with the filesystem.

It is formatted as a comma-separated list of options. It contains at least the type of mount (ro or rw), plus any additional options appropriate to the filesystem type (including performance-tuning options). For details, see mount(8) or swapon(8).

Basic filesystem-independent options are:

  • defaults use default options: rw, suid, dev, exec, auto, nouser, and async.
  • noauto do not mount when "mount -a" is given (e.g., at boot time).
  • user allow a user to mount.
  • owner allow device owner to mount.
  • comment or x-<name> for use by fstab-maintaining programs.
  • nofail do not report errors for this device if it does not exist.

As opções que são completamente independentes do sistema de arquivos são manipuladas pelo fstab. Outras opções são passadas para o comando específico do sistema de arquivos (neste caso, sshfs).

    
por 07.08.2015 / 22:09