Hoe het probleem ontstaat
U opent een bestand en terwijl u uw eigen kopie bewerkt, schrijft iets anders naar het origineel: een andere beheerder, een configuratiebeheertaak, een pakketupgrade of de toepassing zelf. Als u vervolgens opslaat, verdwijnt de andere wijziging zonder foutmelding. Lokaal bewerken en uploaden via SFTP is hier bijzonder gevoelig voor, omdat er veel tijd tussen lezen en schrijven zit en een gewone upload niets vergelijkt.
Leg de toestand vast voordat u begint
Noteer bij het downloaden de controlesom en het tijdstip van de laatste wijziging. Controleer die opnieuw vlak voordat u uploadt. Een andere controlesom betekent dat het bestand is gewijzigd en dat u het niet zonder controle moet overschrijven.
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confVergelijk de wijzigingen en voeg ze samen
Bewaar uw bewerkte kopie onder een nieuwe naam, haal de huidige versie op en vergelijk die met de versie waarmee u begon en met uw eigen versie. Pas uw wijziging vervolgens toe op de huidige versie in plaats van die te overschrijven. Het commando diff3 kan alle drie de versies samen tonen.
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.currentZoek uit wat het bestand wijzigt
Blijft het bestand veranderen, zoek dan de oorzaak voordat u het opnieuw bewerkt. Controleer wie het bestand open heeft en bekijk het journal en de pakketgeschiedenis. Als configuratiebeheer het bestand beheert, wijzig dan daar het sjabloon; anders vervangt de volgende uitvoering uw bewerking.
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logEen waarschuwing is geen vergrendeling
Editors zoals vim en nano waarschuwen als een bestand sinds het openen is gewijzigd, maar verhinderen niet dat een ander proces ernaar schrijft. Hetzelfde geldt voor het vergelijken van controlesommen: een controle vlak voor het opslaan maakt het tijdvenster heel kort, maar niet nul. Op servers waar meerdere mensen werken, biedt een configuratiebron onder versiebeheer meer bescherming dan welke editor ook.
Bescherming bij opslaan in CH-J Server Manager
De editor van File Manager controleert het bestand opnieuw bij het opslaan. Als de inhoud, rechten of het doel van een koppeling zijn gewijzigd, stopt het opslaan en blijft het origineel zoals het is. U kunt dan de huidige versie van de server laden, maar daarmee worden uw niet-opgeslagen wijzigingen verworpen. Kopieer uw tekst dus eerst naar een andere plek. De editor voegt versies niet voor u samen. Bij bestandsoverdracht vraagt de app om bevestiging voordat een gewijzigd of al bestaand doel wordt vervangen, en geeft aan dat u opnieuw moet beginnen als de bron tijdens de overdracht is gewijzigd.