То, что лучший путь состоит в том, чтобы иметь дело с разъединениями сервера sshfs, монтируется?

Вы ищете

fold -w 80 -s text.txt
  • - w говорит ширину текста, где 80 является стандартным.
  • - s говорит для повреждения в пробелах, а не в словах.

Это - стандартный путь, но существуют другие системы, которым нужен "-c" вместо "-w".

60
01.06.2011, 13:00
6 ответов

Можно выполнить sshfs с "повторно подключить" опцией. Мы используем sshfs с PAM/автомонтировать, чтобы совместно использовать файлы сервера для каждой рабочей станции в нашей сети. Мы используем-o, снова соединяются как параметр для sshfs, главным образом потому что наши пользователи приостановили свои компьютеры, и на следе sshfs не соединится снова (или ответит, или что-либо).

Например:

sshfs mvaldez@192.168.128.1:/home/mvaldez/REMOTE /home/mvaldez/RemoteDocs -o reconnect,idmap=user,password_stdin,dev,suid

Просто примечание, если удаленный компьютер действительно снижается, sshfs, может стать безразличным в течение долгого времени.

46
27.01.2020, 19:32

Это походит на задание для autofs. Это довольно владеет мастерством обработки сети, монтируется различных видов (nfs, самба, sshfs, Вы называете его), и замечающий, когда те вещи нуждаются в перемонтировании. Это может также заботиться о размонтировании их после периодов неупотребления и монтирования их, когда запрос к файловой системе сделан.

3
27.01.2020, 19:32
  • 1
    autofs сделает соединение по требованию и может размонтироваться, когда неактивный (который уменьшает проблематичное окно времени), но не поможет, зависает ли sshfs, потому что сервер разъединился. –  Gilles 'SO- stop being evil' 01.06.2011, 14:17

Это может работаться вокруг путем уменьшения тайм-аута. Добавьте следующее к $HOME/.ssh/config или /etc/ssh/ssh_config:

ServerAliveInterval 15
ServerAliveCountMax 3

Это приводит к тайм-ауту 45 секунд.

11
27.01.2020, 19:32
  • 1
    Это только помогло бы, если проблемой является отказ SSH. Существует большая проблема это sshfs не имеет дело со смертью базового ssh обработайте корректно. изменение –  bahamat 18.06.2012, 23:41
  • 2
    Действительно это - только обходное решение и должно быть зафиксировано внутри sshfs. –  Thor 19.06.2012, 13:23
  • 3
    Но только обходное решение, которое имеет дело с одной причиной из многих. Его проблема может не иметь никакого отношения к сообщениям проверки активности. Природа вопроса меньше о причине и больше о чистке к согласованному состоянию. –  bahamat 19.06.2012, 20:14

Если еще есть люди, сталкивающиеся с этой проблемой, я все равно не могу ее исправить. Я нашел рабочий обходной путь.

Следующий рубиновый скрипт сработал. Он создает папку с именем «keepalive» снова и снова. Просто продолжайте это до бесконечности.

$i =1 
$num =0
begin
    puts("Inside the loop i = #$i" )
    $i +=1
    puts 'creating obj'
    system 'mkdir  /{yourmountpoint}/keepalive'
    sleep 5
    puts 'we did it, it should be still alive'
end while $i > $num

Я не знаю, почему это работает. Но, похоже, это решило мою проблему, когда я неактивен в течение минуты, и все зависает. Он просто пытается создать папку в точке монтирования, и это, кажется, не дает ему отключиться и каким-то образом все заморозить.

1
27.01.2020, 19:32

У меня есть сервер, который я использую для хранения и из-за нехватки места, где я живу, я держу его в другом месте. Чтобы перенести файлы в свою сеть, я использую raspberry pi, который монтирует файлы с сервера с помощью sshfs.

Недавно мне пришлось перейти на raspbian jessie из-за сбоя питания, и я понял, что sshfs становится серьезно нестабильным. Папки будут правильно смонтированы, но через какое-то время я не смогу к ним подключиться, и raspberry pi зависнет, если я захочу просмотреть содержимое монтирований.

Я пытался:

  1. использовал переподключение в fstab
  2. использовал значения ServerAliveInterval и ServerAliveCountMax в файле.ssh/config, но безрезультатно.
  3. Другие решения я читал на большинстве форумов.

но не кости! Пока я не изменил файл fstab следующим образом:

sshfs#user@server:/remote/folder /local/mount/dir fuse IdentityFile=sshkeyfile,Port=XXX,uid=1000,gid=1000,allow_other,_netdev,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime,auto 0 0

И это работает! Больше никаких отключений!Похоже, что sshfs по какой-то причине не читает файл конфигурации ssh, и сигналы проверки активности никогда не отправлялись.

8
27.01.2020, 19:32

Ну, другие ответы меня успокоили, но я хочу подытожить то, что работает для меня простым способом:

sshfs -o reconnect,ServerAliveInterval=15 remote.srv:/somedir /local/mymount

Я не указываюServerAliveCountMax:по умолчанию 3.


Итак, приведенная выше команда (с опцией reconnect):

  • будет проверять наличие соединения с remote.srvкаждые 15 секунд.
  • Если 3 последовательных проверки не пройдены, будет предпринята попытка повторно подключиться к рекомендуемому(ssh-agentмонтированию sshfs ).
  • В случае сбоя повторного подключения процессы, пытающиеся получить доступ к удаленным данным через sshfs, получат ошибку ввода-вывода, а не зависнут навсегда.
  • Если соединение с remote.srvснова станет доступным, повторное соединение должно произойти автоматически.

Без reconnectиз вариантов (-o), то:

  • sshfsвсе равно отправит сообщение об ошибке процессам, ожидающим ввода-вывода, но затем umountи правильно завершит работу.
1
02.12.2021, 00:29

Теги

Похожие вопросы