CH-J Server Managerserverio valdymas per SSH
Meniu
Visi vadovai ir straipsniai →

Nuotolinis failas pasikeitė jį redaguojant: kaip išvengti perrašymo

Kaip aptikti, kad jums redaguojant kažkas kitas pakeitė serverio failą, palyginti versijas ir išsaugoti neprarandant nė vieno pakeitimo.

Kaip kyla ši problema

Atveriate failą ir, kol redaguojate savo kopiją, kažkas kitas įrašo į originalą: kitas administratorius, vykdoma konfigūracijos valdymo užduotis, paketo naujinimas ar pati programa. Jei tada išsaugosite, kitas pakeitimas dings be klaidos pranešimo. Vietinis redagavimas ir įkėlimas per SFTP ypač pažeidžiami, nes nuo skaitymo iki įrašymo praeina daug laiko, o paprastas įkėlimas nieko nelygina.

Prieš pradėdami užfiksuokite būseną

Atsisiųsdami failą užsirašykite kontrolinę sumą ir paskutinio pakeitimo laiką. Dar kartą juos patikrinkite prieš pat įkeldami. Kitokia kontrolinė suma reiškia, kad failas pasikeitė ir jo nereikėtų perrašyti neperžiūrėjus.

sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.conf

Palyginkite ir sujunkite pakeitimus

Išsaugokite redaguotą kopiją nauju vardu, atsisiųskite dabartinę versiją ir palyginkite ją su pradine bei savo versija. Tada pritaikykite savo pakeitimą dabartinei versijai, užuot ją perrašę. Komanda diff3 gali kartu parodyti visas tris versijas.

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.current

Išsiaiškinkite, kas keičia failą

Jei failas nuolat keičiasi, prieš vėl redaguodami raskite pakeitimų šaltinį. Patikrinkite, kas jį laiko atvertą, peržiūrėkite žurnalą ir paketų istoriją. Jei failą valdo konfigūracijos valdymo sistema, keiskite šabloną joje, antraip kitas vykdymas pakeis jūsų pataisas.

sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.log

Įspėjimas nėra užraktas

Tokie redaktoriai kaip vim ir nano įspėja, kai failas pasikeitė po atvėrimo, tačiau netrukdo kitam procesui į jį rašyti. Tas pats galioja kontrolinių sumų lyginimui: patikra prieš pat išsaugant labai sutrumpina rizikos laikotarpį, bet jo nepanaikina. Serveriuose, kuriuose dirba keli žmonės, versijų valdymo sistemoje laikomas konfigūracijos šaltinis saugo geriau nei bet kuris redaktorius.

Išsaugojimo apsauga programoje CH-J Server Manager

File Manager redaktorius išsaugant dar kartą patikrina failą. Jei pasikeitė jo turinys, teisės ar nuorodos paskirties objektas, išsaugojimas sustabdomas, o originalas lieka nepakeistas. Tada galite įkelti dabartinę versiją iš serverio, bet taip atmetami neišsaugoti pakeitimai, todėl pirmiausia nukopijuokite savo tekstą kitur. Redaktorius nesujungia versijų už jus. Perduodant failus programa klausia prieš pakeisdama pasikeitusį arba jau esantį paskirties failą ir nurodo pradėti iš naujo, jei perdavimo metu pasikeitė šaltinis.

Išsamūs dokumentai

man: stat →

man: diff →

Biometrinis atrakinimas ir saugumas →