2

理由は不明ですが、Linux サーバーでの Amazon S3 Fuse のマウントが 1 日を通して失敗することがあります。唯一の解決策は、ディレクトリに移動してから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. これを解決する最善の方法は何ですか?
4

1 に答える 1