USB HDDが接続されているときにバックアップスクリプトを実行しようとしていますが、Ubuntu 16.04を使用しています。
また、バックアップスクリプトは、完了したらディスクをアンマウント(およびシャットダウンすることもできます)する必要があります。
/etc/fstab
このディスクのエントリはありません。単にタグ(4TB)を割り当てると、koichiroseが所有するタグe2label
に自動的にマウントされます。/media/koichirose/4tb
今まではそんなに良くなった。
システムサービスは次のとおりです。
[Unit]
Description=Launches backup script when the 4TB WD drive is plugged in
Requires=media-koichirose-4tb.mount
After=media-koichirose-4tb.mount
[Service]
ExecStart=/home/koichirose/scripts/backup_to_4tb
[Install]
WantedBy=media-koichirose-4tb.mount
これを有効にしてHDDを接続すると、/media/koichirose/4tb
ルートが作成および所有され、すぐに/media/koichirose/4tb1
koichiroseが作成および所有されます。実際、ドライブは4TB1に取り付けられていますが、4TBは空です。その後、「4tb1」ではなく「4tb」を探すため、バックアップスクリプトが実行され失敗します。 4tb1を削除すると、ルートが所有する4tbがまだ存在します。
サービスを無効にすると、すべてが再び正常に動作し、ドライブは4TBにマウントされ、ディレクトリはユーザーが正しく所有します。
この問題をどのように解決できますか?
ボーナスの質問:私のスクリプトの終わりに現在実行中ですumount
。これはうまくいきますが、次のことがわかりました。
udisksctl unmount -b /dev/sdc1
udisksctl power-off -b /dev/sdc
これによりドライブがマウント解除され、電源が切れます。これには2つの問題があります。 sudoパスワードを要求し(無人実行を望む)、マウントポイントの代わりにデバイス名(変更される可能性があります)を使用します(「静的」に設定しようとしました)。
編集:バックアップスクリプト(/home/koichirose/scripts/backup_to_4tb
)は次のとおりです。
#!/bin/bash
export RESTIC_PASSWORD="mypassword"
repo_path=/media/koichirose/4tb/restic_incoming_backups
dir_to_backup=/home/koichirose
/usr/local/bin/restic -r $repo_path backup $dir_to_backup
#replace with udisksctl later...
umount /media/koichirose/4tb