Dnes večer jsem musel tvrdě vypnout počítač po nějaké panice jádra.
Když jsem restartoval, všiml jsem si svého ~/.ssh/id_rsa
byl nahrazen prázdným souborem.
Restartování na USB a spuštění fsck
na mém domácím oddílu hlásil, že souborový systém je v dobrém stavu.
To samo o sobě není problém. Mám přístup k původnímu klíči. Obávám se však, že jiné soubory mohly být podobně zkráceny.
Moje poslední záloha pomocí deja-dup
, bylo před třemi dny, takže jsem mohl provést úplný návrat zpět, ale raději bych se zeptal deja-dup
jaké soubory se od té doby změnily, a vyhledejte „podezřelé“ soubory.
Zdá se, že toto je přesně účel duplicity verify
, takže po nějakém procházení manuálové stránky jsem zkusil:
duplicity verify --verbosity 4 --no-encryption file:///path/to/backup/ /home/${USER}
který byl dokončen bez nahlášení změn. Minimálně jsem očekával svůj ~/.ssh/id_rsa
být detekován, ale přidal jsem, odebral a změnil další soubory.
Můj další pokus byl stejný, ale s --compare-data
příznak:
duplicity verify --verbosity 4 --no-encryption file:///path/to/backup/ /home/${USER}
Což zřejmě hlásí, že každý soubor v mé domovské složce je nový, počínaje takto:
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Dec 15 11:43:22 2017
Difference found: File . has permissions 1000:1001 700, expected 0:0 555
Difference found: New file .AndroidStudio2.3
Difference found: New file .AndroidStudio2.3/config
Difference found: New file .AndroidStudio2.3/config/inspection
Difference found: New file .AndroidStudio2.3/config/inspection/Default.xml
Android Studio mám nainstalované měsíce, takže to bylo zcela jistě v mé záloze před třemi dny a ls
hlásí, že Default.xml
stále existuje a je dlouhý 108 bajtů.
Jako poslední úsilí jsem změnil cílový adresář na /
, protože to vypadalo jako kořen při použití duplicity list-current-files
, což vyžadovalo přidání některých regulárních výrazů, aby se omezila duplicita, aby bylo možné brát v úvahu pouze moji domovskou složku:
duplicity verify --verbosity 4 --compare-data --no-encryption --include-regexp ".*home/${USER}/.ssh.*" --exclude-regexp ".*" file:///path/to/backup/ /
Což mělo zajímavý efekt, že moje domovská složka neexistuje:
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Dec 15 11:43:22 2017
Difference found: File home is missing
Difference found: File home/${USER} is missing
Difference found: File home/${USER}/.AndroidStudio2.3 is missing
Difference found: File home/${USER}/.AndroidStudio2.3/config is missing
Difference found: File home/${USER}/.AndroidStudio2.3/config/inspection is missing
Difference found: File home/${USER}/.AndroidStudio2.3/config/inspection/Default.xml is missing
V tuto chvíli určitě jen špatně chápu, jak bych měl používat duplicitu. Jak mohu ověřit zálohu vygenerovanou deja-dup
?
duplicity list-current-files
má výstup začínající:
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Dec 15 11:43:22 2017
Tue Feb 6 19:36:56 2018 .
Wed Aug 2 17:32:09 2017 home
Tue Feb 6 00:38:20 2018 home/${USER}
Sat May 13 18:49:24 2017 home/${USER}/.AndroidStudio2.3
Thu Jun 22 19:42:14 2017 home/${USER}/.AndroidStudio2.3/config
Sat May 13 18:57:45 2017 home/${USER}/.AndroidStudio2.3/config/inspection
Sat May 13 18:57:45 2017 home/${USER}/.AndroidStudio2.3/config/inspection/Default.xml
Přijatá odpověď:
@ede a já jsme našli stejné řešení ve stejnou dobu, v mém případě na duplicitním mailing listu
Související:Podivný problém se zálohováním a upozorněním?
ověření duplicity potřebuje --compare-data
příznak pro ověření souborů na disku a potřebuje --file-to-restore
flag, abych se podíval do správného adresáře, takže poslední příkaz, který vyřešil můj problém, je:
duplicity verify --verbosity 4 --compare-data --file-to-restore=/home/${USER} --no-encryption file:///path/to/backup/ /home/${USER}/
Bohužel to stále nedetekuje ~/.ssh/id_rsa
byl poškozen. Při pokusu o obnovu ze zálohy byl zároveň obnoven 0bajtový soubor... Je docela možné, že se s mým souborem před týdny něco stalo.