¿Es arriesgado cambiar el nombre de la carpeta con 180 GB con el mvcomando?
Tenemos una carpeta /dataque contiene 180GB.
Queremos cambiar el nombre de la /datacarpeta /BD_FILEScon el mvcomando
¿Es seguro hacer eso?
linux
filesystems
mv
yael
fuente
fuente

mvcon la-iopción.Respuestas:
Cambiar el nombre de una carpeta es seguro si permanece dentro del mismo sistema de archivos.
Si es un punto de montaje (
/dataparece que podría ser un punto de montaje para mí, verifique esto conmount), entonces debe hacer algo más que un simplemvpuestomv /data /BD_FILESque movería los datos a la partición raíz (que puede no ser lo que quieres que suceda)Debe desmontar el sistema de archivos, renombrar el directorio ahora vacío, actualizar
/etc/fstabcon la nueva ubicación para este sistema de archivos y luego volver a montar el sistema de archivos en la ubicación renombrada.En otras palabras,
umount /datamv /data /BD_FILES(suponiendo/BD_FILESque no exista, en ese caso, quítelo primero)/etc/fstab, cambiando el punto de montaje de/dataa/BD_FILESmount /BD_FILESEsto no implica copiar ningún archivo, solo cambia el nombre del directorio que actúa como punto de montaje para el sistema de archivos.
Si el cambio de nombre del directorio implica moverlo a un nuevo sistema de archivos (lo que sería el caso si
/dataestá en un disco mientras/BD_FILESestá en otro disco, algo común si está moviendo cosas a una partición más grande, por ejemplo) , Recomendaría copiar los datos mientras deja el original intacto hasta que pueda verificar que la copia está bien. Puedes hacer esto conpor ejemplo, pero vea el
rsyncmanual de lo que hace y no hace (no conserva los enlaces duros, por ejemplo).Una vez que se cambia el nombre de la carpeta, también debe asegurarse de que los procedimientos existentes (programas y usuarios que usan la carpeta, copias de seguridad, etc.) estén al tanto del cambio de nombre.
fuente
mvhacer unarenamellamada al sistema, pero debido a circunstancias no se ha dado cuenta de que va a copiar los archivos y eliminar el original. Si necesito estar absolutamente seguro de que solo se realiza unarenamellamada al sistema ymvno va a hacer algo "inteligente" a mis espaldas, abro un shell de Python y lo usoos.rename.mkdir /BD_FILES && mount -M /data /BD_FILES && rmdir /datarsynces que es reiniciable.rsync -aconserva casi todos los metadatos, pero no los enlaces duros, las ACL o los atributos extendidos (agregue-HAXpara eso).renamecomandos con diferentes comportamientos. Creo que es una razón suficiente para no usar elrenamecomando cuando quieres estar seguro de lo que va a hacer.No está cambiando el nombre de cada archivo en el directorio, está cambiando el nombre de un archivo en /. Eso es porque:
Por lo tanto, cambiar el nombre de un directorio, sin importar cuántos archivos o cuántos datos contenga, es trivial.
fuente
Si solo cambia el nombre (origen y destino en el mismo sistema de archivos), es simplemente un cambio de nombre de una entrada de directorio. O tiene éxito y el directorio tiene un nuevo nombre, o falla, en cuyo caso nada cambia * .
Si el origen y el destino están en sistemas de archivos diferentes, los datos deben copiarse
mv. Las diferencias en las características del sistema de archivos, como el tamaño máximo de archivo, las limitaciones en los nombres de archivo, etc., pueden causar problemas. Para evitar problemas, primero copia ficheros (cp,rsync, ...) y después de la copia se realiza correctamente, eliminar los archivos en la ubicación original.* Sin embargo, hay algunos casos de esquina, por ejemplo mencionados en la sección ERRORES en el cambio de nombre man 2
fuente
Como han dicho otros, cambiar el nombre de una carpeta no plantea ningún riesgo inherente a los contenidos. Pero hay un tipo diferente de riesgo que puede considerar.
Los procedimientos existentes, los scripts, los accesos directos definidos por el usuario y las configuraciones que hacen referencia a la ubicación original podrían romperse con este cambio, y si las rutas se almacenan en una base de datos, por ejemplo, actualizarlas podría ser un gran trabajo.
Una cosa que puede hacer es hacer un enlace simbólico para el nuevo nombre del directorio, pero dejar el antiguo nombre en su lugar por un tiempo. Eso le dará tiempo para evaluar el impacto de este cambio. Puede eliminar temporalmente el nombre antiguo, ver si hay algún problema y, si lo hay, volver a crear el nombre antiguo para que las personas puedan seguir trabajando mientras usted descubre qué necesita actualizarse.
Un comando como este debería hacerlo:
ln -s /data /BD_FILESfuente
mv thing1 thing2 ; ln --symbolic ./thing2 thing1. De esa manera tengo el nuevo nombre y puedo probar fácilmente la ausencia del antiguo eliminando el enlace simbólico.Renombrar es atómico. El único riesgo razonable es que
mvdecide copiar todo por alguna razón y se bloquea a la mitad. Si tiene GNUmv,mv -Teliminará este riesgo.mv -Tle dicemvque se está moviendo a una no carpeta; lo que hará que se niegue a hacer lomkdir()que a su vez hará que falle si mueve una carpeta y decidió copiar por alguna razón.Estuve involucrado en sacudir errores
mv -Tmientras trabajaba en mi tesis de maestría hace años. Solía hacer lo incorrecto en muchos casos extremos.Por otro lado, tiene 180 GB de datos de usuario en la partición raíz. Probablemente quiera mover esto fuera de la partición raíz.
fuente