Como surge o problema
Abre um ficheiro e, enquanto edita a sua cópia, algo escreve no original: outro administrador, uma execução da gestão de configuração, uma atualização de pacote ou a própria aplicação. Se guardar em seguida, a outra alteração desaparece sem erro. A edição local seguida do envio por SFTP está particularmente exposta, porque o intervalo entre a leitura e a escrita é longo e um simples envio não faz qualquer comparação.
Registe o estado antes de começar
Anote a soma de verificação e a hora da última alteração quando transferir o ficheiro do servidor. Verifique-as novamente imediatamente antes de o enviar. Uma soma de verificação diferente significa que o ficheiro mudou e não deve ser substituído sem análise.
sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.confCompare e una as alterações
Conserve a sua cópia editada com um nome novo, obtenha a versão atual e compare-a com a versão de partida e com a sua. Depois aplique a sua alteração à versão atual em vez de a substituir. O comando diff3 pode mostrar as três versões em conjunto.
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.currentDescubra o que está a alterar o ficheiro
Se o ficheiro mudar continuamente, identifique a origem antes de voltar a editá-lo. Verifique quem o tem aberto e consulte o journal e o histórico de pacotes. Se o ficheiro for controlado pela gestão de configuração, altere o modelo nesse sistema; caso contrário, a próxima execução substituirá a sua edição.
sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.logUm aviso não é um bloqueio
Editores como vim e nano avisam quando um ficheiro mudou desde que foi aberto, mas não impedem outro processo de escrever nele. O mesmo se aplica à comparação de somas de verificação: uma verificação imediatamente antes de guardar torna o intervalo de risco muito curto, mas não o elimina. Em servidores onde trabalham várias pessoas, uma fonte de configuração sob controlo de versões oferece melhor proteção do que qualquer editor.
Proteção ao guardar no CH-J Server Manager
O editor do File Manager volta a verificar o ficheiro ao guardar. Se o conteúdo, as permissões ou o destino da ligação tiverem mudado, a gravação é interrompida e o original permanece como está. Pode então carregar a versão atual do servidor, mas isso descarta as alterações não guardadas, pelo que deve copiar primeiro o seu texto para outro local. O editor não une as versões por si. Nas transferências, a aplicação pede confirmação antes de substituir um destino que mudou ou que já existe, e indica que deve recomeçar se a origem tiver mudado durante a transferência.