私は現在、日曜日にバックアップを実行するためにveracrypt暗号化ハードドライブをインストールするようになっているbashスクリプトを作成しています。毎週2つの異なるHDD間を循環したいので、スクリプトがデバイスをマウントする前に、/dev/sdb1または/dev/sdc1が現在デバイスに接続されていることを確認する必要があります。
hdd_sdb1="$(fdisk -l | grep /dev/sdb1)"
hdd_sdc1="$(fdisk -l | grep /dev/sdc1)"
if [ -n "$hdd_sdb1" ]
then
hdd_name=/dev/sdb1
fi
if [ -n "$hdd_sdc1" ]
then
hdd_name=/dev/sdc1
fi
先週末にスクリプトの変数を変更しましたが、インストールが正常に機能しました。今週末にスクリプトが実行されたとき、上記のfdiskコマンドのどれも行を返さなかったため、ifクエリは機能しませんでした。今、ハードドライブがしばらくインストールされていない場合は、OSがハードドライブを無効にするかどうか疑問に思います。無効にする方法はありますか?
答え1
問題を発見しました。
これは、ハードドライブが正しくマウントされていないかシャットダウンされたためではなく、コマンドによるものですfdisk
。 cronjobを使用してスクリプトが実行され、ログインしたユーザーがないため、fdisk
出力が返されないため、変数は常に空です。
これで、ファイルがフォルダにsdb1
あることをテストし、コマンドを無視します。sdc1
/dev
fdisk