Portanto, esta é a minha solução de backup e consiste em dois scripts:
1.) eu substitui o padrão / usr / lib / hal / scripts / hal-system-power-suspend script com o código a seguir para garantir que toda vez que o computador for suspenso (por exemplo, fechar a tampa), ele será ativado para o backup:
#!/bin/sh
#Determine when to wake up computer
waketime="01:30"
waketimesec="0"
if [ 'date --date=$waketime +%s' -gt 'date +%s' ]
then
echo today
waketimesec='date --date=$waketime +%s'
else
echo tomorrow
waketimesec='date --date="tomorrow $waketime" +%s'
fi
#Determine switch sleep modus to choose
state='cat /proc/acpi/ac_adapter/AC0/state | grep on-line'
if [ "$state" = '' ]
then
echo Computer on battery mode
sudo /usr/sbin/pm-suspend
else
echo Computer on AC mode
sudo rtcwake -m mem -t $waketimesec
state='cat /proc/acpi/ac_adapter/AC0/state | grep on-line'
if [ "$state" = '' ]
then
sudo /usr/sbin/pm-suspend
fi
fi
Observe que nenhum backup será feito se o adaptador CA for desconectado e o computador estiver funcionando com bateria.
2.) O segundo script faz o backup real e é acionado pelo cron alguns minutos após o wake-up. Ele ativa o computador de destino remoto, monta um compartilhamento smbfs, executa um backup diferencial usando o backintime e desliga o computador remoto e, em seguida, coloca o PC local de volta ao modo de suspensão:
#!/bin/bash
echo Wake up destination computer and sleep...
wakeonlan <mac_address>
date
echo ..sleep for 90s #the time your computer needs to boot and start smb
sleep 90
echo Mounting share..
sudo smbmount //<ip_address>/backup_folder /home/<user>/local_folder/ -o username=<user>,password=<pass>,file_mode=0777,dir_mode=0777,uid=1000,user
echo ..share mounted!
echo Starting backup!
backintime --backup > backintime.log
echo Backup finished, giving it time to settle..
sleep 10
echo Unmounting share..
sudo smbumount /home/<user>/local_folder/
sleep 5
echo Shutdown remote computer...
ssh '<user>@<ip_address>' "sudo shutdown -h now"
echo Going back to sleep..
/usr/lib/hal/scripts/hal-system-power-suspend
Para cada comando sudo use visudo para conceder direitos de superusuário. Use autorização de chave pública para evitar prompts de senha no comando ssh.
Agora você tem backups novos todas as noites com consumo mínimo de energia. Espero que isso ajude alguém.