Сбой монтирования Linux с ошибкой Конечная точка транспорта не подключена

Время от времени по неизвестным причинам происходит сбой монтирования Amazon S3 Fuse на Linux-сервере в течение дня. Единственное разрешение - umount, а затем снова mount каталог. Я попытался написать следующий сценарий оболочки, который при ручном размонтировании работал и перемонтировался, но я узнал, что должно быть какое-то другое «состояние», когда ссылка не работает, но на самом деле не размонтирована.

Исходная ошибка:

[root@app3 mnt]# cd s3fs
[root@app3 s3fs]# ls
ls: cannot access amazon: Transport endpoint is not connected
amazon
[root@app3 s3fs]# umount amazon 
[root@app3 s3fs]# mount amazon/

Сценарий оболочки пытается проверить монтирование и перемонтирование в случае сбоя (работало в ручных тестах, но не удалось):

   #!/bin/bash

   cat /etc/mtab | grep /mnt/$1 >/dev/null
   if [ "$?" -eq "0" ]; then
        echo /mnt/$1 is mounted.
   else
        echo /mnt/$1 is not mounted at this time.
        echo remounting now...
        umount /mnt/$1
        mount /mnt/$1
   fi

  1. Почему сценарий оболочки будет работать, если я вручную размонтирую каталог и запущу тест, но когда конечная точка транспорта не работает, тест возвращает значение true, а перемонтирование не происходит?
  2. Каков наилучший способ решить эту проблему?

person Mike S.    schedule 14.08.2012    source источник
comment
Похоже, у других есть аналогичная проблема с другими облачными службами и точками подключения: github.com/redbo/cloudfuse/ выпусков/15   -  person Mike S.    schedule 15.08.2012
comment
Другой похожей проблемой точки монтирования и ее решением было размонтирование и повторное монтирование: bugs.launchpad. сеть/ubuntu/+источник/gvfs/+ошибка/212789   -  person Mike S.    schedule 15.08.2012


Ответы (1)


Я знаю, что это старо, но это может помочь другим, столкнувшимся с этой проблемой. У нас была похожая проблема: наша корзина демонтировалась случайным образом и получала ошибку «Конечная точка транспорта не подключена».

Вместо «cat /etc/mtab» я использую «df -hT», и он работает с моим скриптом. Проблема в том, что он застревает в этом странном состоянии, будучи наполовину размонтированным, а «mtab» все еще видит его смонтированным; но я до сих пор не знаю, почему.

Это код, который я использую:

#!/bin/bash

if [ $(df -hT | grep -c s3fs) != 1 ]
then 
        # unmount it first
        umount /path/to/mounted/bucket;

        # remount it
        /usr/local/bin/s3fs bucket-name /path/to/mount/bucket -o noatime -o allow_other;

        echo "s3fs is down";

        # maybe send email here to let you know it went down
fi

Также убедитесь, что вы запускаете свой скрипт от имени пользователя root, иначе он не сможет размонтироваться/перемонтироваться.

person Titi    schedule 11.06.2014