Ako problém vzniká
Otvoríte súbor a počas úprav vlastnej kópie do originálu zapíše niečo iné: ďalší správca, nástroj na správu konfigurácie, aktualizácia balíka alebo samotná aplikácia. Ak potom súbor uložíte, druhá zmena bez chyby zmizne. Obzvlášť rizikové sú lokálne úpravy a nahrávanie cez SFTP, pretože medzi čítaním a zápisom uplynie veľa času a obyčajné nahratie nič neporovnáva.
Pred začatím zaznamenajte stav
Pri sťahovaní súboru si poznačte kontrolný súčet a čas poslednej zmeny. Bezprostredne pred nahratím ich znova skontrolujte. Odlišný kontrolný súčet znamená, že súbor sa zmenil a nemali by ste ho prepísať bez preskúmania.
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confPorovnajte a zlúčte zmeny
Upravenú kópiu si ponechajte pod novým názvom, načítajte aktuálnu verziu a porovnajte ju s verziou, z ktorej ste vychádzali, aj so svojou verziou. Potom svoju zmenu zapracujte do aktuálnej verzie namiesto jej prepísania. Príkaz diff3 dokáže zobraziť všetky tri verzie naraz.
diff -u example.conf.orig example.conf.current
diff -u example.conf.orig example.conf.mine
diff3 example.conf.mine example.conf.orig example.conf.currentZistite, čo súbor mení
Ak sa súbor opakovane mení, pred ďalšou úpravou nájdite príčinu. Skontrolujte, kto ho má otvorený, a prezrite journal aj históriu balíkov. Ak súbor spravuje nástroj na správu konfigurácie, zmeňte šablónu v ňom, inak ďalšie spustenie vašu úpravu nahradí.
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logUpozornenie nie je zámok
Editory ako vim a nano upozornia, keď sa súbor od otvorenia zmenil, ale nezabránia inému procesu doň zapisovať. To isté platí pre porovnávanie kontrolných súčtov: kontrola tesne pred uložením veľmi skráti rizikový interval, ale neodstráni ho úplne. Na serveroch, kde pracuje viac ľudí, vás zdroj konfigurácie pod správou verzií ochráni lepšie než akýkoľvek editor.
Ochrana pri ukladaní v CH-J Server Manager
Editor vo File Manager pri ukladaní súbor znova skontroluje. Ak sa zmenil jeho obsah, oprávnenia alebo cieľ odkazu, ukladanie sa zastaví a originál zostane nedotknutý. Potom môžete načítať aktuálnu verziu zo servera, čím sa zahodia vaše neuložené zmeny, preto si text najprv skopírujte bokom. Editor verzie nezlučuje za vás. Pri prenosoch sa aplikácia pred nahradením zmeneného alebo už existujúceho cieľa opýta a ak sa počas prenosu zmenil zdroj, vyzve vás začať znova.