크론 예약 백업과 동시에 파일을 편집하지 마세요., 나는 방법을 알아냈습니다:
백업하기 전에 예를 들어
notify-send -t 0 "Ready for backup"
준비하라는 데스크톱 알림을 보내고(편집 내용을 파일에 저장하고 외장 하드 드라이브를 백업 대상으로 연결) 준비가 되면 알림에서 확인을 클릭합니다. 그런 다음 백업이 시작됩니다.백업이 완료되면 편집을 재개할 수 있도록 백업 명령의 종료 값과 백업에 소요된 시간을 알려주는 옵션이 있습니다.
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
다음과 같은 문제가 있습니다.
"백업할 준비가 되셨나요?"라는 첫 번째 알림을 보내고 백업하기 전에 내 응답을 기다리고 싶습니다. 즉, 이상적으로는 확인을 클릭하면 백업을 진행할 수 있습니다. "취소"를 클릭하면 백업이 실행되지 않고 스크립트의 다음 명령이 실행되지 않습니다.
하지만 현재 스크립트에서는 첫 번째 스크립트가
notify-send
내 응답을 기다리지 않고 백업을 계속합니다.응답을 기다리게 할 수 있더라도 "확인" 또는 "취소"를 클릭했는지에 대한 응답을 얻기 위해 스크립트에서 이를 코딩하는 방법을 모르겠습니다.
notify-send
백업이 완료된 후 두 번째 "백업 완료!..." 메시지가 표시되지 않습니다.