Como atualizar uma instalação de gerenciamento de conteúdo sobrescrevendo arquivos existentes via ssh e shell?

2

Eu instalei um cms (modx) em um servidor web rodando o CentOS 5 e o Apache 2.2. Agora há uma nova versão e eu gostaria de atualizá-la. As instruções no modx-wiki sugerem que você sobrescreva os arquivos existentes.

Eu baixei um arquivo .zip e o extraí. A instalação existente fica em html/cms/ . Os novos arquivos estão em html/modx-2.1.1-pl/ . Eu acesso o servidor através de uma conexão ssh.

Como faço para mover os novos arquivos para html/cms/ enquanto sobrescrevo arquivos existentes e preservo arquivos que não fazem parte dos arquivos de instalação? Eu já tentei o mv -command e li que rsync ou cp pode ser adequado.

Quando tentei mv -ivt cms/ modx-2.1.1-pl/* , não funcionou. Subdiretórios de modx-2.1.1-pl/ não foram movidos.

Como fazer isso certo?

    
por haldgreen 20.06.2011 / 21:35

2 respostas

1

Primeiro, faça um backup dos arquivos existentes, apenas por precaução.

tar czf modx-old.tar.gz html/cms

Em seguida, use cp para copiar os novos arquivos no lugar. Você não pode usar mv aqui porque ele simplesmente ignora os diretórios existentes em vez de recorrer a eles. Mas cp fará uma cópia profunda, sobrescrevendo qualquer arquivo existente no destino.

cd html/modx-2.1.1-pl/ && cp -Rpf . ../html/cms/

Com o GNU cp , você pode adicionar -l para criar links físicos em vez de copiar.

Por fim, você pode remover o diretório modx-2.1.1-pl .

    
por 21.06.2011 / 00:34
0

Você apenas tem a ordem dos argumentos errada. O uso do comando mv é mv source dest . Se você quiser mover tudo em modx-2.1.1-pl para cms, você deve fazer mv modx-2.1.1-pl/* cms/ . Na verdade, pode ser melhor usar cp em vez de mv , caso em que a sintaxe seria cp -r modx-2.1.10pl/* cms/ .

    
por 20.06.2011 / 22:18