ディスクXにディレクトリがインストールされていることを確認し、そうでない場合はインストールする方法

ディスクXにディレクトリがインストールされていることを確認し、そうでない場合はインストールする方法

データをバックアップするスクリプトを作成しようとしています。私はこれについてよく分からないので、間違った方向に行っているかもしれませんが、私がしたいのは、バックアップしたい各ディレクトリに対してrsync -avhを何度も使用することです。ただし、ターゲットをハードコードされた値()に設定しました~/sbackup/。スクリプトを実行する前にフォルダがマウントされていることを確認し、そうでない場合はマウントしてみてください。したがって、スクリプトロジックは次のようになります。

1)マイUSBドライブがにマウントされていることを確認してください~/sbackup/。 (CD - 他のUSBデバイスがCDにマウントされないようにする方法があれば良いでしょう。)

2)そうでない場合は、その場所に設置してみてください。それ以外の場合は、エラーメッセージを作成して終了します。

3) インストールされている場合は、残りのスクリプトを実行します。

これでエラーメッセージなどを書くことができますが、ステップ1と2の最初の部分はわかりません。

答え1

コマンドがある場合mountpoint

mountpoint -q /local/mount/point || mount ...

答え2

引数なしで実行すると、mountマウントされたパーティションのリストとマウントポイントを含む、これに関するいくつかの情報が返されます。したがって、grepマウント出力でマウントポイントをターゲットにして、それに応じてアクションを取ることができます。

if ! mount | grep -q sbackup; then
    mount /dev/sdb1 /home/matthew/sbackup || echo "Couldn't mount" && exit
fi

/dev/sdbUSBパーティションとmatthewユーザー名を変更してください。インストールするにはスクリプトを実行してくださいsudo

関連情報