Dobrý den.
Pokouším se z důvodu uspoření datových přenosů změnit v BackupPC zálohování z metody "tar" na "rsync".
Při prvním přenosu s nastavením $Conf{XferMethod} = 'rsync' se přenese celý zálohovaný strom. Nedojde-li ke změně žádného souboru a je spuštěna nová záloha, ta skončí s chybou "no files dumped for share", protože backuppc nezíská od rsynce žádné soubory (což je ale očekávatelný stav vzhledem k tomu, že žádný soubor nebyl změněn). S tím jsem ochoten žít, ač mě překvapuje, že tento stav není ošetřen.
V případě, že dojde ke změně např. jednoho souboru, je přenesen jen tento jeden soubor a backuppc zálohu o velikosti 1 soubor považuje za plnou. Vše vypadá dobře. Další plnou zálohu bere jakožto rozdíl oproti této jedno souborové záloze a stahuje opět celý zbytek (mínus ten jeden soubor). Výhoda rsyncu, kdy by měly být přenášeny vždy jen změněné soubory, se tak zcela vytrácí.
Když se podívám do /var/lib/backuppc/pc/host/, je tam i v adresářích pro plné zálohy vidět, že obsahují jen inkrementy, které dostal od rsynce. Čekal bych, že některý z backuppc procesů by měl dodělat hardlinky na nezměněné soubory z předchozí zálohy, aby adresář plné zálohu obsahoval opravdu zálohu plnou. To se ale neděje. U zálohy je stav "idle". Tzn. link zřejmě proběhl. Tím, že se poté dělá rsync oproti nekompletní záloze, dochází k popsanému stavu.
Má se to takto chovat?
Relevantní obsah konfiguračního souboru:
$Conf{XferMethod} = 'rsync';
$Conf{ClientNameAlias} = 'localhost';
$Conf{RsyncShareName} = ['/sdileny/adresar'];
$Conf{RsyncArgs} = [
'--numeric-ids',
'--perms',
'--owner',
'--group',
'-D',
'--links',
'--hard-links',
'--times',
'--block-size=4096',
'--recursive',
'--checksum-seed=32761'
$Conf{FullPeriod} = 0.97;
$Conf{IncrPeriod} = 0;
$Conf{FullKeepCnt} = 2;
$Conf{IncrKeepCnt} = 4;
$Conf{PingMaxMsec} = 2000;
Děkuji.