Cum apare problema
Deschizi un fișier și, în timp ce îți editezi copia, altceva scrie în original: un alt administrator, o execuție a sistemului de gestionare a configurației, o actualizare de pachet sau chiar aplicația. Dacă apoi salvezi, cealaltă modificare dispare fără vreo eroare. Editarea locală urmată de încărcarea prin SFTP este deosebit de expusă, deoarece intervalul dintre citire și scriere este lung, iar o simplă încărcare nu compară nimic.
Înregistrează starea înainte să începi
Notează suma de control și ora ultimei modificări atunci când descarci fișierul. Verifică-le din nou chiar înainte de încărcare. O sumă de control diferită înseamnă că fișierul s-a schimbat și nu ar trebui să îl suprascrii fără să îl examinezi.
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confCompară și îmbină modificările
Păstrează copia editată sub un nume nou, descarcă versiunea curentă și compar-o cu versiunea de la care ai pornit și cu a ta. Apoi aplică modificarea ta versiunii curente în loc să o suprascrii. Comanda diff3 poate afișa toate cele trei versiuni împreună.
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.currentAflă ce modifică fișierul
Dacă fișierul se schimbă în continuu, identifică sursa înainte să îl editezi din nou. Verifică cine îl are deschis și consultă jurnalul și istoricul pachetelor. Dacă fișierul este controlat de un sistem de gestionare a configurației, modifică șablonul acolo; altfel, următoarea execuție îți va înlocui modificarea.
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logUn avertisment nu este o blocare
Editoare precum vim și nano te avertizează când un fișier s-a schimbat de la deschidere, dar nu împiedică un alt proces să scrie în el. Același lucru este valabil pentru comparațiile sumelor de control: o verificare chiar înainte de salvare scurtează mult intervalul de risc, dar nu îl reduce la zero. Pe serverele unde lucrează mai multe persoane, o sursă a configurației aflată sub controlul versiunilor te protejează mai bine decât orice editor.
Protecția la salvare în CH-J Server Manager
Editorul File Manager verifică din nou fișierul la salvare. Dacă s-au schimbat conținutul, permisiunile sau ținta legăturii, salvarea se oprește, iar originalul rămâne așa cum este. Poți apoi încărca versiunea curentă de pe server, dar astfel se elimină modificările nesalvate, așa că mai întâi copiază textul tău în altă parte. Editorul nu îmbină versiunile în locul tău. La transferuri, aplicația cere confirmare înainte de a înlocui o destinație care s-a schimbat sau există deja și îți spune să reiei de la început dacă sursa s-a schimbat în timpul transferului.