O problema era um diretório de trabalho não especificado. Aparentemente, o rsnapshot usa /var/cache/rsnapshot/tmp/
por padrão e /var/cache/rsnapshot
é lido e gravável pelo usuário rsnapshot apenas (enquanto o backup_script é executado como root).
Meu script de backup agora altera o diretório de trabalho, efetua check-out para /home/rsnapshot/git_backup
e esse diretório é feito backup usando uma diretiva backup
normal.
backup_script /usr/local/bin/gitbackup.py -r https://foo.bar/myrepo.git -u username -f /root/.pwd -w /home/rsnapshot/git_backup git_tmp/myrepo.git/
backup /home/rsnapshot/git_backup/ localhost_git/
Agora eu tenho o problema, que os check-outs sincronizados (não os clonados) abaixo de /var/cache/rsnapshot/daily.0/localhost_git
contêm apenas um diretório ~/.git
e nada mais, mas esse é um problema diferente.