Sådan opstår problemet
Du åbner en fil, og mens du redigerer din egen kopi, skriver noget andet til originalen: en anden administrator, en kørsel af konfigurationsstyringen, en pakkeopgradering eller selve applikationen. Hvis du derefter gemmer, forsvinder den anden ændring uden en fejlmeddelelse. Lokal redigering med upload via SFTP er særligt udsat, fordi der går lang tid mellem læsning og skrivning, og en almindelig upload ikke sammenligner noget.
Registrér tilstanden, før du begynder
Notér kontrolsummen og tidspunktet for seneste ændring, når du downloader filen. Kontrollér dem igen umiddelbart før upload. En anden kontrolsum betyder, at filen er ændret, og at du ikke bør overskrive den uden at gennemgå ændringerne.
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confSammenlign og flet ændringerne
Behold din redigerede kopi under et nyt navn, hent den aktuelle version, og sammenlign den med både den version, du begyndte med, og din egen. Indarbejd derefter din ændring i den aktuelle version i stedet for at overskrive den. Kommandoen diff3 kan vise alle tre versioner sammen.
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.currentFind ud af, hvad der ændrer filen
Hvis filen bliver ved med at ændre sig, skal du finde årsagen, før du redigerer igen. Kontrollér, hvem der har den åben, og se i journalen og pakkehistorikken. Hvis filen styres af konfigurationsstyringen, skal du ændre skabelonen dér, ellers erstatter næste kørsel din redigering.
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logEn advarsel er ikke en lås
Editorer som vim og nano advarer, når en fil er ændret siden åbningen, men de forhindrer ikke andre processer i at skrive til den. Det samme gælder sammenligning af kontrolsummer: En kontrol lige før lagring gør tidsvinduet meget kort, men fjerner det ikke. På servere med flere brugere giver en versionsstyret konfigurationskilde bedre beskyttelse end nogen editor.
Beskyttelse ved lagring i CH-J Server Manager
Editoren i File Manager kontrollerer filen igen, når du gemmer. Hvis indhold, rettigheder eller linkmål er ændret, stoppes lagringen, og originalen forbliver urørt. Du kan derefter indlæse den aktuelle version fra serveren, hvilket kasserer dine ikke-gemte ændringer, så kopiér først din tekst et andet sted hen. Editoren fletter ikke versionerne for dig. Ved overførsler spørger appen, før den erstatter et mål, der er ændret eller allerede findes, og beder dig starte forfra, hvis kilden blev ændret under overførslen.