Kako nastane težava
Odprete datoteko in med urejanjem svoje kopije v izvirnik zapiše nekdo ali nekaj drugega: drug skrbnik, orodje za upravljanje nastavitev, nadgradnja paketa ali sama aplikacija. Če jo nato shranite, druga sprememba izgine brez napake. Lokalno urejanje in nalaganje prek SFTP sta še posebej izpostavljena, saj med branjem in pisanjem mine veliko časa, navadno nalaganje pa ničesar ne primerja.
Pred začetkom zabeležite stanje
Ob prenosu datoteke s strežnika zabeležite kontrolno vsoto in čas zadnje spremembe. Preverite ju znova tik pred nalaganjem. Drugačna kontrolna vsota pomeni, da se je datoteka spremenila in je ne smete prepisati, ne da bi jo pregledali.
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confPrimerjajte in združite spremembe
Urejeno kopijo ohranite pod novim imenom, pridobite trenutno različico in jo primerjajte z različico, iz katere ste izhajali, ter s svojo. Nato svojo spremembo vnesite v trenutno različico, namesto da bi jo prepisali. Ukaz diff3 lahko skupaj prikaže vse tri različice.
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.currentUgotovite, kaj spreminja datoteko
Če se datoteka kar naprej spreminja, pred ponovnim urejanjem poiščite vzrok. Preverite, kdo jo ima odprto, ter preglejte journal in zgodovino paketov. Če datoteko upravlja orodje za upravljanje nastavitev, spremenite predlogo v njem, sicer bo naslednji zagon zamenjal vašo spremembo.
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logOpozorilo ni zaklep
Urejevalniki, kot sta vim in nano, opozorijo, ko se datoteka od odprtja spremeni, vendar drugemu procesu ne preprečijo pisanja vanjo. Enako velja za primerjanje kontrolnih vsot: preverjanje tik pred shranjevanjem zelo skrajša časovno okno, vendar ga ne odpravi. Na strežnikih, kjer dela več ljudi, vas vir nastavitev pod nadzorom različic zaščiti bolje kot kateri koli urejevalnik.
Zaščita pri shranjevanju v CH-J Server Manager
Urejevalnik v File Manager ob shranjevanju znova preveri datoteko. Če so se spremenili vsebina, dovoljenja ali cilj povezave, se shranjevanje ustavi in izvirnik ostane tak, kot je. Nato lahko naložite trenutno različico s strežnika, s čimer zavržete svoje neshranjene spremembe, zato besedilo najprej kopirajte na drugo mesto. Urejevalnik ne združuje različic namesto vas. Pri prenosih aplikacija vpraša pred zamenjavo cilja, ki se je spremenil ali že obstaja, in vas pozove, da začnete znova, če se je med prenosom spremenil vir.