クローン予約バックアップと同時にファイルを編集しないでください。、私は方法を見つけました:
バックアップする前に、たとえば準備を求める
notify-send -t 0 "Ready for backup"
デスクトップ通知を送信し(編集内容をファイルに保存し、外付けハードドライブをバックアップ先に接続します)、準備ができたら通知で[OK]をクリックします。その後、バックアップが開始されます。バックアップが完了したら編集を再開できるように、バックアップコマンドの終了値とバックアップに費やした時間を知らせるオプションがあります。
BashとUbuntuでこれを行うにはどうすればよいですか?これには小さな問題が含まれます。 cronでデスクトップ通知をスケジュールする方法は?
私が始めたことを達成するためのより良い方法がある場合は、自由に教えてください。
私の試み。
* * * * * /home/t/mybackup.sh
ここにcrontab -e
バックアップと通知をラップするbashスクリプトを作成しました。/home/t/mybackup.sh
#! /usr/bin/env bash
export DISPLAY=:0
/usr/bin/notify-send -t 0 "Ready for backup?" &&
dest=/tmp/`date +%Y.%m.%d_%H:%M:%S`&&
mkdir -p "$dest" &&
timetake=`time /usr/bin/rsync -a /home/t/program_files/dir/ "$dest"/ 2>"$dest"/rsync-errors`; exitvalue=`echo $?`
/usr/bin/notify-send -t 0 "Finished backup!" "time taken: " $timetake " exit value:" $exitvalue
次の問題があります。
「バックアップする準備ができましたか?」という最初の通知を送信し、バックアップする前に私の応答を待ちたいです。つまり、理想的には[OK]をクリックするとバックアップを続行できます。 「キャンセル」をクリックすると、バックアップは実行されず、スクリプトの次のコマンドは実行されません。
しかし、現在のスクリプトでは、最初のスクリプトは私の
notify-send
応答を待たずにバックアップを続けます。応答を待つことができますが、「OK」または「キャンセル」をクリックしたかどうかを確認するためにスクリプトでそれをコーディングする方法がわかりません。
notify-send
バックアップが完了した後、2番目の「バックアップ完了!...」というメッセージは表示されません。