安排备份并通知?

安排备份并通知?

避免在 cron 计划的备份的同时编辑文件,我想出了一个办法:

  • 在备份之前,发送一个桌面通知,例如notify-send -t 0 "Ready for backup",让我准备(将编辑保存到文件,并插入外部硬盘驱动器作为备份目的地),当我准备好时,我会在通知上单击“确定”,然后备份开始。

  • 备份完成后,可以选择通知我备份命令的退出值和备份所需的时间,以便我可以恢复编辑。

我怎样才能在 bash 和 Ubuntu 中做到这一点?这包含一个更小的问题: 如何在 cron 中安排桌面通知?

如果您有更好的方法来实现我一开始的目标,请随意。

我的尝试。

我添加* * * * * /home/t/mybackup.sh到,在那里我编写了一个包装备份和通知的crontab -ebash 脚本:/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备份完成后不会出现第二个“完成备份!...”。

相关内容