AutoFS - 続行または終了する前にマウントが有効になっていることを確認する Bash スクリプト

AutoFS - 続行または終了する前にマウントが有効になっていることを確認する Bash スクリプト

これはautofsマウントにのみ適用されます。

従来のマウントを確認する方法はいくつかあり、その中には/proc/mountsファイルを使用しています。現在マウントにアクセスできない場合でも、マウントがまだファイルにあることがわかります。それだけです。以前はアクセスできますが、現在デバイスがオフになっているか、スリープ状態です。

これらは私が試したもののほんの一部ですが、すべてfstabマウントでは機能しているようですが、autofsマウントでは動作しません。彼らは単にautofsマウントが現在利用できないことを見ていません。 mountやfindmntなどのコマンドを使用すると中断されるようです。 CTRL+C を使用してコマンドを終了します。

スクリプトを介してファイルシステムがマウントされていることを確認する方法

https://stackoverflow.com/questions/9422461/check-if-directory-mounted-with-bash

https://serverfault.com/questions/50585/whats-the-best-way-to-check-if-a-volume-is-mounted-in-a-bash-script

究極の目標は、スクリプトを続行するか、適切に終了する前にスクリプトが有効になっていることを確認するためにスキャンスクリプトを作成することです。

以下は、デバイスがシャットダウンしてもマウントが/ proc / mountsにあるため、常に利用可能と見なされるURLの1つの例です。

if grep -qs '/mnt/Backups' /proc/mounts; then
  echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
    exit 1
fi
echo "test done"

URLの別の(より良い?)例はfindmntを使用することです。しかし、これも完全に有効ではありません。

if findmnt /mnt/Backups; then
  echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
    exit 1
fi
echo "test done"

Findmnt Stop:[アップデート:もう少しテストしましたが、今回は停止しません。代わりに grep メソッドに報告します。サーバーをスリープ状態にした後でも、マウントがまだそこにあると思います。ところで、今日午前は凍りました。]

  • 共有されている場合以前はインストールされているがまだインストールされていません(たとえば、デスクトップがサーバーに接続された後にサーバーがシャットダウンした場合など)。

働く:

  • 共有がマウントされている場合、findmntは問題ありません(マウントを探します)。
  • デスクトップの起動後に共有がマウントされていない場合(正しくマウントが見つかりません)。

RedHatリファレンス資料が見つかりました。もっと信頼できるソースを定義する必要がありますか?ついています。

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s2-sysinfo-filesystems-findmnt

ありがとうございます。

更新:また、ディレクトリを確認してみました。

https://stackoverflow.com/questions/59838/check-if-a-directory-exists-in-a-shell-script

デスクトップに存在しないことがわかっているディレクトリ(smeghead)が見つかりましたが、「ターゲットにアクセスできません。終了中」という応答が表示されました。

if [ -d "/home/Derek/Desktop/smeghead/" ];  then
    echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
    exit 1
fi

ただし、/mnt/Backups (autofs によってバックアップが消えた場合) にパスを変更した場合は、コマンドを停止して Ctrl+C を押す必要があります。

だから問題のようですautofsおよび/または/mntの場所に問題がありますか?

ベストアンサー1

で述べたようにubuntu.conのautofsページ

自動マウントはアクセス時にのみマウントされ、一定期間アクティビティがない場合はマウント解除されます。

したがって、最初のステップ(有効なautofs設定が完了したら!-)は、必要なマウントポイントにアクセスすることです。

私は使うマウントポイントこのように:

# try to change directory (or ls) to auto-mount if not yet mounted
cd /mnt/Backups/ > /dev/null 2>&1
# check if mounted:
if mountpoint -q /mnt/Backups/; then
    echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
fi

交換できますCDそしてエルエス(それともより良い解決策でしょうか?)現在のディレクトリに滞在したい場合

おすすめ記事