CH-J Server Managerpamamahala ng server sa pamamagitan ng SSH
Menu
Lahat ng gabay at artikulo →

Nagbago ang remote file habang ine-edit mo: paano maiiwasang mapatungan ito

Paano matutukoy na may ibang nagbago ng server file habang ine-edit mo ito, maghambing ng mga bersiyon at mag-save nang walang nawawalang pagbabago.

Paano nangyayari ang problema

Nagbukas ka ng file, at habang ine-edit mo ang sarili mong kopya, may ibang sumusulat sa orihinal: ibang administrator, isang pagtakbo ng configuration management, pag-upgrade ng package o ang application mismo. Kung mag-save ka pagkatapos nito, mawawala ang pagbabago ng iba nang walang error. Lalong lantad sa panganib ang lokal na pag-edit at pag-upload sa SFTP, dahil mahaba ang pagitan ng pagbasa at pagsulat at walang inihahambing ang simpleng pag-upload.

Itala ang kalagayan bago magsimula

Itala ang checksum at oras ng huling pagbabago kapag dina-download mo ang file. Suriin muli ang dalawa kaagad bago mag-upload. Ibig sabihin ng magkaibang checksum ay nagbago ang file at hindi mo ito dapat patungan nang hindi muna sinusuri.

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

Ihambing at pagsamahin ang mga pagbabago

Itago ang na-edit mong kopya sa bagong pangalan, kunin ang kasalukuyang bersiyon at ihambing ito sa bersiyong pinagmulan at sa sarili mong bersiyon. Pagkatapos, ilapat ang pagbabago mo sa kasalukuyang bersiyon sa halip na patungan ito. Maaaring ipakita ng command na diff3 ang tatlong bersiyon nang sabay.

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

Alamin kung ano ang nagbabago sa file

Kung patuloy na nagbabago ang file, hanapin ang pinagmumulan bago mag-edit muli. Suriin kung sino ang may bukas nito at tingnan ang journal at kasaysayan ng package. Kung configuration management ang namamahala sa file, baguhin ang template doon; kung hindi, papalitan ng susunod na pagtakbo ang pag-edit mo.

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

Hindi lock ang babala

Nagbababala ang mga editor gaya ng vim at nano kapag nagbago ang file mula nang buksan ito, ngunit hindi nila pinipigilan ang ibang proseso na sumulat dito. Ganoon din sa paghahambing ng checksum: napaiikli ng pagsusuri kaagad bago mag-save ang panahong maaaring magkaroon ng salungatan, ngunit hindi ito nagiging sero. Sa mga server na pinagtatrabahuhan ng maraming tao, mas mahusay kang napoprotektahan ng pinagmumulan ng configuration na may version control kaysa ng anumang editor.

Proteksiyon sa pag-save sa CH-J Server Manager

Sinusuri muli ng editor ng File Manager ang file sa pag-save. Kung nagbago ang nilalaman, mga permiso o target ng link nito, hihinto ang pag-save at mananatili ang orihinal sa kasalukuyang kalagayan nito. Maaari mong i-load ang kasalukuyang bersiyon mula sa server, ngunit itatapon nito ang mga pagbabagong hindi pa nase-save, kaya kopyahin muna ang teksto mo sa ibang lugar. Hindi pinagsasama ng editor ang mga bersiyon para sa iyo. Sa mga paglilipat, nagtatanong ang app bago palitan ang target na nagbago o mayroon na, at sinasabi nitong magsimula muli kung nagbago ang pinagmulan habang naglilipat.

Detalyadong dokumentasyon

man: stat →

man: diff →

Biometric na pag-unlock at seguridad →