completo / etc / recovery do git

2

Eu tenho um servidor do CentOS 6.9.

O diretório /etc completo estava sob controle de versão.

Eu acidentalmente rodei 'git rm -R' nele. O servidor parou de funcionar imediatamente, minha sessão ssh se perdeu.

Eu consegui ter um console ip conectado ao servidor, e inicializado do usb com um live linux, eu corri 'git reset --hard' .

Agora index / working dir está limpo. Eu reiniciei o sistema, mas ainda não funciona. Ele responde ao ping, mas eu não posso ssh para ele ainda.

No console IP, não consigo nem efetuar login, depois de digitar qualquer usuário e ele pede novamente para o usuário.

No linux de recuperação, verifiquei os erros em /var/log/boot.log - o primeiro erro está relacionado ao iptables-restore

error while loading shared libraries libip4tc.so.0 : cannot open shared object file: No such file or directory

A próxima é com o rsyslog.d

CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'

O arquivo está claramente lá, se eu verificar no linux de recuperação ao vivo. Eu suspeito de algum problema de permissão, mas não faço ideia.

Qualquer ajuda apreciada. Obrigado.

    
por stvn 15.03.2018 / 17:50

2 respostas

3

A propriedade e as permissões provavelmente estão erradas. Como você não estava rastreando estes, terá que corrigi-los manualmente, para cada arquivo.

Por si só, o git não rastreia a propriedade e as permissões dos arquivos. Não é para isso que serve. Esses metadados não foram rastreados e, portanto, foram perdidos.

Isto é o que sistemas como etckeeper são para. Eles envolvem o git para manter /etc no controle de versão, enquanto também mantêm os metadados que o git não mantém, e restaurando-o se necessário. Para evitar que isso aconteça no futuro, considere o uso do etckeeper ou de uma ferramenta semelhante.

Você também pode querer instituir algum tipo de backup. Você atualmente não parece ter nenhum tipo de backup, e esta é uma receita para o desastre. Você teve sorte de escapar com a menor perda de dados que você tem. Você pode não ter muita sorte da próxima vez.

    
por 15.03.2018 / 18:13
0

Sim, você tem um problema de permissão e de propriedade de arquivo. Infelizmente, o git armazena apenas o conteúdo e o bit executável de um arquivo , então as permissões de leitura / gravação, usuário e propriedades do grupo e ACLs se algum for perdido quando você restaurar de git reset --hard . Isso é mais que suficiente para quebrar seu host quando o diretório que está sendo restaurado é / etc.

Sua melhor esperança de recuperação é a partir de um backup completo do sistema de arquivos, que incluirá todas as propriedades e permissões do arquivo.

Se você não tiver um desses, tente reconstruir a propriedade e as permissões manualmente, comparando-as a um host CentOS semelhante. Mas pode acabar sendo menos trabalho reinstalar o sistema operacional do zero. Desculpe.

    
por 15.03.2018 / 18:19