É arriscado renomear a pasta com 180 GB com o mvcomando?
Temos uma pasta /dataque contém 180 GB.
Queremos renomear a /datapasta para /BD_FILEScom o mvcomando
É seguro fazer isso?
É arriscado renomear a pasta com 180 GB com o mvcomando?
Temos uma pasta /dataque contém 180 GB.
Queremos renomear a /datapasta para /BD_FILEScom o mvcomando
É seguro fazer isso?
Respostas:
Alterar o nome em uma pasta é seguro, se permanecer no mesmo sistema de arquivos.
Se for um ponto de montagem ( /dataparece que poderia ser um ponto de montagem para mim, verifique isso com mount), você precisará fazer algo diferente de um simples, mvpois mv /data /BD_FILESmoveria os dados para a partição raiz (o que pode não ser o que você quer que aconteça).
Você deve desmontar o sistema de arquivos, renomear o diretório agora vazio, atualizar /etc/fstabcom o novo local para este sistema de arquivos e remontar o sistema de arquivos no local renomeado.
Em outras palavras,
umount /datamv /data /BD_FILES(supondo que /BD_FILESainda não exista, nesse caso, remova-o primeiro)/etc/fstab, alterando o ponto de montagem de/data para/BD_FILESmount /BD_FILESIsso não envolve copiar nenhum arquivo, apenas altera o nome do diretório que atua como o ponto de montagem do sistema de arquivos.
Se a renomeação do diretório envolver movê-lo para um novo sistema de arquivos (o que seria o caso se estivesse /dataem um disco enquanto/BD_FILES estiver em outro disco, é uma coisa comum a fazer se você estiver movendo as coisas para uma partição maior, por exemplo) , Recomendo copiar os dados e deixar o original intacto até que você possa verificar se a cópia está correta. Você pode fazer isso com
rsync -a /data/ /BD_FILES/
por exemplo, mas veja o rsync manual para que isso faz e o que não faz (não preserva os links físicos, por exemplo).
Depois que a pasta é renomeada, você também precisa garantir que os procedimentos existentes (programas e usuários usando a pasta, backups etc.) estejam cientes da alteração de nome.
mvapenas fazer uma renamechamada do sistema, mas devido a circunstâncias, ainda não se percebeu que copiará os arquivos e excluirá o original. Se eu precisar ter certeza absoluta de que apenas uma renamechamada do sistema é feita e mvnão fará algo "inteligente" nas minhas costas, abro um shell Python e o uso os.rename.
mkdir /BD_FILES && mount -M /data /BD_FILES && rmdir /data
rsyncé que é reinicializável.
rsync -apreserva quase todos os metadados, mas não links físicos, ACLs ou atributos estendidos (adicione -HAXpara isso).
renamecomandos diferentes com comportamento diferente. Eu acho que isso é motivo suficiente para não usar o renamecomando quando você quer ter certeza do que ele fará.
Você não está renomeando todos os arquivos no diretório, está renomeando um arquivo em /. Isso é porque:
Portanto, renomear um diretório, não importa quantos arquivos ou quantos dados contenham, é trivial.
Se você apenas renomear (origem e destino no mesmo sistema de arquivos), é simplesmente uma renomeação de uma entrada de diretório. Ele é bem-sucedido e o diretório tem um novo nome ou falha, caso em que nada muda * .
Se a origem e o destino estiverem em sistemas de arquivos diferentes, os dados precisarão ser copiados mv. Diferenças nos recursos do sistema de arquivos, como tamanho máximo do arquivo, limitações nos nomes dos arquivos, etc., podem causar problemas. Para evitar problemas, arquivos primeira cópia ( cp, rsync...) e após a cópia for concluída com êxito, remova os arquivos no local original.
* No entanto, existem alguns casos de canto, por exemplo mencionados na seção BUGS no man 2 rename
Como já foi dito, renomear uma pasta não representa um risco inerente ao conteúdo. Mas há um tipo diferente de risco que você pode querer considerar.
Procedimentos, scripts, atalhos definidos pelo usuário e configurações existentes que referenciam o local original podem ser interrompidos por essa alteração e, se os caminhos forem armazenados em um banco de dados, por exemplo, atualizá-los pode ser um grande trabalho.
Uma coisa que você pode fazer é criar um link simbólico para o novo nome de diretório, mas deixe o nome antigo no local por um tempo. Isso lhe dará tempo para avaliar o impacto dessa mudança. Você pode remover temporariamente o nome antigo, verificar se há algum problema e, se houver, recriar o nome antigo para que as pessoas possam continuar trabalhando enquanto você descobre o que precisa ser atualizado.
Um comando como este deve fazê-lo:
ln -s /data /BD_FILES
mv thing1 thing2 ; ln --symbolic ./thing2 thing1. Dessa forma, tenho o novo nome e posso testar facilmente a ausência do antigo excluindo o link simbólico.
Renomear é atômico. O único risco razoável é que mvdecida copiar tudo por algum motivo e que trava na metade. Se você tem GNU mv, mv -Tremoverá esse risco.
mv -Tinforma mvque está sendo movido para uma não-pasta; o que fará com que ele se recuse a fazer o mkdir()que, por sua vez, fará com que falhe se mover uma pasta e decidiu copiar por algum motivo.
Eu estava envolvido em sacudir bugs mv -Tenquanto trabalhava na minha tese de mestrado anos atrás. Costumava fazer a coisa errada em muitos casos extremos.
Por outro lado, você tem 180 GB de dados do usuário na partição raiz. Você provavelmente deseja remover isso da partição raiz.
mvcom a-iopção