起動するたびに外付けハードドライブを自動マウントするUbuntuサーバーがあります。
これを行うには、ルートパーティションに空のフォルダーを作成し、ドライブがこのフォルダーの「内部」にマウントされます。
ただし、ドライブが正しくマウントされていないときにこのパスへのバックアップを実行するとどうなりますか?代わりに、バックアップによってルートパーティションがいっぱいになります。
ドライブを毎回マウントすることを確認できます。
Sudo mount -a
...各バックアップの前。
ただし、データが空のマウントフォルダーに書き込まれないようにするためのベストプラクティスは何ですか(外付けハードドライブが実際にマウントされている場合を除く)。
これはスクリプトなしで解決できますか?たとえば、許可を与えますか?ベストプラクティスは何ですか?
私はさらに一歩進んで、常にchattrを使用して、マウントポイントディレクトリの属性を不変に設定します。
これはchattr +i /mountpoint
(マウントがマウントされていない状態)。
これにより、新しい書き込みアクティビティでエラーが発生し、他の状況でもマウントポイントが保護されます。
しかし、私は仮定しますmountpointコマンド も使用できると思います;)
mountpoint
の使用に関するコメントをさらに詳しく説明するために、次のようなことを確認する必要があるときに、スクリプトに大まかにこれを入れます。
DEST='/mnt/backup'
if ! mountpoint -q "$DEST" ; then
echo "Destination is not mounted; attempting to mount"
mount $DEST
if ! mountpoint -q "$DEST" ; then
echo "Unable to mount $DEST; Aborting"
exit 1
fi
echo "Mounted $DEST; Continuing backup"
fi
これは、$ DESTが/etc/fstab
に存在することを前提としています。マウントポイントがauto
でもnoauto
でもかまいません。
mount
manページによると:
たとえば、ディレクトリまたはデバイスのみが指定されている場合:
mount /dir
次に、mountはマウントポイントを探し、見つからない場合は/ etc/fstabファイルでデバイスを探します。 --tar-getまたは--sourceオプションを使用して、指定された引数のあいまいな解釈を回避することができます。例えば
mount --target /mountpoint