Kā rodas problēma
Jūs atverat failu un, kamēr rediģējat savu kopiju, kaut kas cits ieraksta izmaiņas oriģinālā: cits administrators, konfigurācijas pārvaldības izpilde, pakotnes atjauninājums vai pati lietotne. Ja pēc tam saglabājat, otra izmaiņa pazūd bez kļūdas paziņojuma. Lokāla rediģēšana un augšupielāde ar SFTP ir īpaši pakļauta šim riskam, jo starp nolasīšanu un ierakstīšanu paiet ilgs laiks un vienkārša augšupielāde neko nesalīdzina.
Pirms darba sākuma fiksējiet stāvokli
Lejupielādējot failu, pierakstiet kontrolsummu un pēdējo izmaiņu laiku. Pārbaudiet tos vēlreiz tieši pirms augšupielādes. Atšķirīga kontrolsumma nozīmē, ka fails ir mainījies, un to nevajadzētu pārrakstīt bez apskates.
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confSalīdziniet un apvienojiet izmaiņas
Saglabājiet savu rediģēto kopiju ar jaunu nosaukumu, iegūstiet pašreizējo versiju un salīdziniet to ar sākotnējo versiju un savējo. Pēc tam ieviesiet savas izmaiņas pašreizējā versijā, nevis pārrakstiet to. Komanda diff3 var parādīt visas trīs versijas kopā.
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.currentNoskaidrojiet, kas maina failu
Ja fails pastāvīgi mainās, pirms nākamās rediģēšanas atrodiet izmaiņu avotu. Pārbaudiet, kam tas ir atvērts, un apskatiet žurnālu un pakotņu vēsturi. Ja failu pārvalda konfigurācijas pārvaldības sistēma, mainiet veidni tajā, citādi nākamā izpilde aizstās jūsu labojumu.
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logBrīdinājums nav bloķējums
Tādi redaktori kā vim un nano brīdina, ja fails ir mainījies kopš atvēršanas, taču tie neliedz citam procesam tajā rakstīt. Tas pats attiecas uz kontrolsummu salīdzināšanu: pārbaude tieši pirms saglabāšanas padara riska intervālu ļoti īsu, bet nesamazina to līdz nullei. Serveros, kuros strādā vairāki cilvēki, konfigurācijas avots ar versiju kontroli aizsargā labāk nekā jebkurš redaktors.
Saglabāšanas aizsardzība lietotnē CH-J Server Manager
File Manager redaktors saglabājot vēlreiz pārbauda failu. Ja ir mainījies saturs, atļaujas vai saites mērķis, saglabāšana tiek apturēta un oriģināls paliek tāds, kāds ir. Pēc tam varat ielādēt pašreizējo versiju no servera, taču tas atmet nesaglabātās izmaiņas, tāpēc vispirms nokopējiet savu tekstu citur. Redaktors neapvieno versijas jūsu vietā. Pārsūtīšanas laikā lietotne prasa apstiprinājumu pirms mainīta vai jau esoša mērķa aizstāšanas un liek sākt no jauna, ja pārsūtīšanas laikā ir mainījies avots.