リモートディレクトリにアクセスし、いくつかのタスクをスクリプトとして書きたいファイルがたくさんありますsshfs
。実際には、異なる時間に異なるファイルにアクセスし、そのファイルに対してさまざまなタスクを実行したいと思います。
オプション1:ディレクトリ全体をマウントします(1スクリプト)。次に、選択したファイル固有のスクリプトを実行します。
オプション2:ファイル固有のスクリプトを使用してディレクトリをマウントするプロセスをバンドルします。
オプション1の欠点:ファイル固有のスクリプトを実行する前にフォルダがマウントされているかどうかを忘れてしまいます。確認には10秒しかかかりませんが、少し迷惑です。このフォルダが常にまたはデフォルトでマウントされたくありません。
sshfs
オプション2の欠点:2番目または3番目のファイルを処理するときに、最終的にマウントされたリモートディレクトリが使用されます。これは害を及ぼしますか?
オプション2に関して、次のようにディレクトリがすでにマウントされていることを確認できます。bashを使用してディレクトリがインストールされていることを確認してください。。これが最善の解決策のように聞こえますか?
答え1
「オプション2」について言えば、すでにマウントされているリモートディレクトリをマウントするのは良い考えではありません。別の取り付けポイントに取り付けると、使用方法によってロックが失われます。また、デフォルトでは、fuse
マウントポイントが空でない場合、マウントは行われません。
IMHO、最良の方法はあなたが言ったことです。リモートディレクトリがマウントされていることを確認し、そうでない場合はマウントします。スクリプトに数行を追加すると、管理が簡単です。たとえば、
REMOTE="user@remote:/some/dir"
MOUNTPOINT=$( mount | grep -E "^${REMOTE}/? " | awk '{print $3}' )
if [ -z "$MOUNTPOINT" ] ; then
echo "Mounting remote directory..."
else
echo "$REMOTE is already mounted on $MOUNTPOINT"
fi