如何在插入 USB 磁盘和使用 Back In Time 时进行静默备份

如何在插入 USB 磁盘和使用 Back In Time 时进行静默备份

其实我已经回答过这个问题了,虽然我不知道答案是否正确。那么你对此有什么看法:

  • 任务:让计算机尽可能安静、轻松地使用 Back In Time (BIT) 开始备份,以获得最高的 WAF*
  • 解决方案:当插入特定 USB 磁盘时,使用 udev 启动类似这样的备份脚本:

#!/bin/bash
# usage: backup_userdata.sh username

export _USER=$1

# config file, Xauthoriy and DISPLAY    
export BIT_CONFIG=/home/$_USER/.config/backintime/config
if ! test -e $BIT_CONFIG ; then exit 1;fi

# set DISPLAY
export XAUTHORITY=/home/$_USER/.Xauthority
export $(cat /proc/$(pgrep -o -u $_USER unity)/environ | tr '\0' '\n' | grep '^DISPLAY=').0

# dont auto-open backup USB disk - couldnt find a better solution for this  
su $_USER -c 'gsettings set org.gnome.desktop.media-handling automount-open false'          
{ sleep 10; su $_USER -c 'gsettings set org.gnome.desktop.media-handling automount-open true' ; }&

# send the rest to the background so udev doesnt wait for the backup to end
{   
    export BIT_LOG=/home/$_USER/.local/share/backintime/takesnapshot_.log

    # strings for pop ups
    export STARTTEXT="Backup started"
    export SUCCESSTEXT="Backup completed"
    export WARNINGTEXT="Backup completed with errors\nRevise results\nExternal disk still mounted"
    export ERRORTEXT="Backup aborted\nRevise results\nExternal disk still mounted"
    export BIT="Back In Time"   

    # back up media     
    export BIT_MEDIA="/media/backup"


    # start backup
    su $_USER -c 'notify-send "$BIT" "$STARTTEXT"'
    if su $_USER -c 'backintime -b --config $BIT_CONFIG'; then
        if ! grep -iq "error: " $BIT_LOG; then 
            # no errors in log file
            umount $BIT_MEDIA # umount before confirmation
            su $_USER -c 'notify-send "$BIT" "$SUCCESSTEXT"'
            su $_USER -c 'zenity --no-wrap --info --title "$BIT" --text "\n$SUCCESSTEXT"'
        else    
            # errors in log file
            su $_USER -c 'notify-send "$BIT" "$WARNINGTEXT"'
            su $_USER -c 'zenity --no-wrap --warning --title "$BIT" --text "\n$WARNINGTEXT"'
            su $_USER -c backintime-gnome # open BIT for error analysis 
        fi
    else    
        # backup aborted
        su $_USER -c 'notify-send "$BIT" "$ERRORTEXT"'
        su $_USER -c 'zenity --no-wrap --error --title "$BIT" --text "\n$ERRORTEXT"'
        su $_USER -c backintime-gnome # open BIT for error analysis
    fi  
}&

脚本可以工作。据我所知,剩下的唯一问题是,我在 12.04 上运行的 BIT 版本并不总是使用退出状态。但最新版本应该可以(我目前无法测试)。

任何意见?

“*” 女性接受度

答案1

1.0.28BackInTime版本开始udev,它自己支持日程安排。只需选择When drive get connected (udev)Settings > Schedule您就大功告成了...

免责声明:我是 BIT 的当前主要开发人员

相关内容