Backup de Deja-dup já em execução quando iniciado a partir do cron

1

Eu instalei um novo Ubuntu 16.04 LTS há alguns dias.

Eu tentei configurar o backup automático com o deja-dup como eu tinha no meu sistema antigo (Ubuntu 14.04). Eu costumava lançar o deja-dup de um script, e esse script foi executado em um horário agendado no cron, funcionou decentemente.

Eu tentei fazer a mesma coisa no novo sistema, mas por algum motivo ele não roda quando é iniciado pelo cron, ele diz "Outra operação de backup já está em execução."

ps aux | grep deja-dup output:

user   2909  0.0  0.1 378136  6944 ?        Sl   mars16   0:00 /usr/lib/x86_64-linux-gnu/deja-dup/deja-dup-monitor
user  23785  0.0  0.0  16004  2204 pts/27   S+   10:51   0:00 grep --color=auto deja-dup

Apenas o monitor está rodando, e eu estou supondo que isto está bem (talvez eu esteja errado), eu tentei matá-lo e executar o cron novamente, mas sem sorte.

Eu instalei duplicidade e executando um simples deja-dup - o backup está funcionando bem. Eu também tentei limpar o .cache / deja-dup / sem sucesso.

Aqui está o script que é executado a partir do cron:

#!/bin/sh

## test for an existing bus daemon, just to be safe
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
    ## if not found, launch a new one
    eval 'dbus-launch --sh-syntax --exit-with-session'
fi

# Launch deja-dup
deja-dup --backup --display=:0

E aqui está a linha do cron:

30 20 * * * /path/to/backup_script.sh

Eu também tentei colocar um DEJA_DUP_DEBUG = 1 no backup_script.sh e redirecionar a saída para um arquivo de texto, mas ele cria o arquivo e não faz mais nada.

Todas as sugestões são bem-vindas, obrigado!

edit1: a configuração do deja-dup é configurada para arquivos de backup em um servidor local com ssh.

    
por Gades 21.03.2017 / 11:18

1 resposta

2

Para aqueles que podem encontrar este problema, depois de ler as fontes descobri que esta mensagem de erro estava relacionada com o barramento de sessão ... Então eu fui ler o manpage do ubuntu link e encontrou esta parte interessante da descrição:

  

Você pode especificar um programa para ser executado; Nesse caso, o dbus-launch iniciará uma instância de barramento de sessão, configurará as variáveis de ambiente apropriadas para que o programa especificado possa localizar o barramento e, em seguida, execute o programa especificado, com os argumentos especificados. Veja abaixo exemplos.

Então eu mudei meu script para

#!/bin/bash

# Launch deja-dup with dbus-launch to get the session bus
dbus-launch deja-dup --backup --display=:0

E funciona perfeitamente no horário agendado do cron!

    
por Gades 21.03.2017 / 15:18