理由は不明ですが、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
- ディレクトリを手動でアンマウントしてテストを実行すると、シェル スクリプトが機能するのはなぜですか?トランスポート エンドポイントが失敗すると、テストは true を返し、再マウントは行われません。
- これを解決する最善の方法は何ですか?