{"id":255673,"date":"2022-10-24T21:39:23","date_gmt":"2022-10-24T21:39:23","guid":{"rendered":"https:\/\/magazineoffice.com\/10-ejemplos-utiles-del-comando-rsync-de-linux\/"},"modified":"2022-10-24T21:39:24","modified_gmt":"2022-10-24T21:39:24","slug":"10-ejemplos-utiles-del-comando-rsync-de-linux","status":"publish","type":"post","link":"https:\/\/magazineoffice.com\/10-ejemplos-utiles-del-comando-rsync-de-linux\/","title":{"rendered":"10 ejemplos \u00fatiles del comando rsync de Linux"},"content":{"rendered":"


\n<\/p>\n

\n
fatmawati achmad zaenuri\/Shutterstock.com<\/span><\/figcaption><\/figure>\n

el linux rsync<\/code> command es una poderosa herramienta de copia de archivos y sincronizaci\u00f3n de carpetas. Aqu\u00ed hay diez casos de uso comunes que podr\u00e1 aprovechar en sus propios sistemas.<\/p>\n

los rsync<\/code> La herramienta copia archivos y directorios entre dos computadoras. Utiliza un algoritmo sofisticado que escanea \u00e1rboles de directorios para encontrar archivos en la computadora de origen que no existen en la computadora de destino. Estos archivos se transmiten a la computadora de destino. que hace rync<\/code> tan inteligente es que puede averiguar qu\u00e9 piezas de existente<\/em> los archivos han sido modificados, y solo env\u00eda el porciones cambiadas<\/em>.<\/p>\n

Puedes usar rsync<\/code> para copiar archivos a una ubicaci\u00f3n diferente en su disco duro, a un disco duro diferente en la misma computadora, a una unidad USB conectada externamente o a cualquier otra ubicaci\u00f3n accesible en red.<\/p>\n

Adem\u00e1s de eso, rsync<\/code> puede conservar opcionalmente los enlaces simb\u00f3licos, los enlaces duros y los metadatos de los archivos, como la propiedad del archivo, los permisos y los tiempos de acceso. Para soportar toda esta funcionalidad, rsync<\/code> tiene muchas opciones y resolverlas lleva tiempo. Hemos recopilado estos 10 ejemplos para ayudarlo a comenzar. Ya hemos escrito sobre hacer copias de seguridad con rsync<\/code> por lo que nos estamos concentrando en otros usos aqu\u00ed.<\/p>\n

Para todas sus muchas opciones, la estructura de un rsync<\/code> El comando es simple. Necesitamos proporcionar la fuente, el destino y las opciones que queremos usar. Probablemente encuentres eso rsync<\/code> ya est\u00e1 instalado en su computadora con Linux, lo estaba en todas nuestras m\u00e1quinas de prueba, pero si no lo est\u00e1, definitivamente estar\u00e1 en los repositorios de su distribuci\u00f3n.<\/p>\n

1. Copiar archivos a un directorio diferente<\/h2>\n

Aqu\u00ed hay un ejemplo simple para que podamos comenzar. Vamos a copiar los archivos del directorio \u00abarchivos de proyecto\u00bb al directorio \u00abDocumentos\u00bb. Estamos usando dos opciones, la -a<\/code> (archivo) opci\u00f3n y la -v<\/code> (detallado) opci\u00f3n. La opci\u00f3n detallada dice rsync<\/code> para explicar lo que est\u00e1 haciendo mientras lo hace. los archive<\/code> La opci\u00f3n conserva la propiedad del archivo y algunos otros elementos que veremos en breve.<\/p>\n

El formato del comando es options source-location destination-location<\/code>.<\/p>\n

rsync -av \/home\/dave\/project-files\/ \/home\/dave\/Documents\/<\/pre>\n

\"Copiar<\/p>\n

Usando ls<\/code> en la carpeta \u00abDocumentos\u00bb muestra que los archivos se han copiado.<\/p>\n

\"Listado<\/p>\n

Tiempo rsync<\/code> est\u00e1 funcionando, los archivos se enumeran a medida que se copian. Se les dijo:<\/p>\n

    \n
  • El n\u00famero de bytes que se env\u00edan.<\/li>\n
  • El n\u00famero de bytes recibidos. Antes de que se lleve a cabo la transferencia de archivos, rsync<\/code> tiene que averiguar qu\u00e9 archivos deben transferirse. Para hacer eso, alguna informaci\u00f3n sobre los archivos en el destino debe ser recuperada por rsync<\/code> . Esta informaci\u00f3n est\u00e1 contenida en los bytes recibidos.<\/li>\n
  • La velocidad de la transferencia.<\/li>\n
  • El tama\u00f1o total de los archivos copiados.<\/li>\n
  • La \u00abaceleraci\u00f3n\u00bb. Esta es la relaci\u00f3n del tama\u00f1o total dividida por la suma de los bytes enviados y recibidos. Cuanto mayor sea este n\u00famero, m\u00e1s eficiente ser\u00e1 la transferencia.<\/li>\n<\/ul>\n

    Modificamos el archivo de texto en el directorio fuente y repetimos el rsync<\/code> dominio.<\/p>\n

    rsync -av \/home\/dave\/project-files\/ \/home\/dave\/Documents\/<\/pre>\n

    \"Copiar<\/p>\n

    Esta vez, el \u00fanico archivo que debe actualizarse es el archivo de texto que modificamos. La cifra de aceleraci\u00f3n ahora es de 30.850. As\u00ed de eficiente es copiar la parte modificada de ese \u00fanico archivo, que copiar todos los archivos.<\/p>\n

    los -a<\/code> La opci\u00f3n (archivo) en realidad representa una colecci\u00f3n de otras opciones. Es lo mismo que usar todas estas opciones:<\/p>\n

      \n
    • r<\/strong>: Trabaje recursivamente a trav\u00e9s de \u00e1rboles de directorios en el directorio de origen y c\u00f3pielos en el directorio de destino, cre\u00e1ndolos si a\u00fan no existen all\u00ed.<\/li>\n
    • yo<\/strong>: Copie los enlaces simb\u00f3licos como enlaces simb\u00f3licos.<\/li>\n
    • pags<\/strong>: conservar los permisos de archivo.<\/li>\n
    • t<\/strong>: Preservar los tiempos de modificaci\u00f3n de archivos.<\/li>\n
    • gramo<\/strong>: conservar los permisos del grupo.<\/li>\n
    • o<\/strong>: Preservar la propiedad del archivo.<\/li>\n
    • D<\/strong>: Copie archivos especiales y archivos de dispositivos. Los archivos especiales pueden ser elementos centrados en la comunicaci\u00f3n que se tratan como archivos, como sockets y conductos de tipo primero en entrar, primero en salir (fifos). Los archivos de dispositivos son archivos especiales que brindan acceso a dispositivos y pseudodispositivos.<\/li>\n<\/ul>\n

      Esta es una combinaci\u00f3n de uso tan frecuente que rsync<\/code> proporciona el -a<\/code> (archivo) como una forma abreviada de invocarlos a todos.<\/p>\n

      2. Copie un directorio a un directorio diferente<\/h2>\n

      Si miras lo anterior rsync<\/code> ver\u00e1 una barra inclinada final \u00ab\/\u00bb en la ruta del archivo del directorio de origen. Esto es significativo. Dice rsync<\/code> para copiar el contenido<\/em> del directorio. Si no proporciona la barra diagonal final, rsync<\/code> copiar\u00e1 el directorio y<\/em> su contenido.<\/p>\n

      rsync -av \/home\/dave\/project-files \/home\/dave\/Documents\/<\/pre>\n

      \"Copiar<\/p>\n

      Esta vez, el nombre del directorio se agrega al nombre del archivo a medida que se enumeran. Si miramos dentro del directorio de destino, veremos que la carpeta de origen se ha copiado con los archivos que contiene.<\/p>\n

      ls Documents\/<\/pre>\n
      ls Documents\/project-files\/<\/pre>\n

      \"Listado<\/p>\n

      3. Copie un directorio a una unidad diferente<\/h2>\n

      Copiar archivos a otra ubicaci\u00f3n en el mismo disco duro no le brinda protecci\u00f3n contra fallas en el disco. Si esa unidad se rinde, habr\u00e1 perdido las copias de origen y destino de esos archivos. Copiarlos a otro disco duro es una forma mucho m\u00e1s robusta de proteger sus datos. Todo lo que tenemos que hacer es proporcionar la ruta correcta a la unidad de destino.<\/p>\n

      rsync -av \/home\/dave\/project-files \/run\/mount\/drive2<\/pre>\n

      \"Copiar<\/p>\n

      Mirar el otro disco duro nos muestra el directorio y los archivos que se copiaron en \u00e9l.<\/p>\n

      ls run\/mount\/drive2\/project-files\/<\/pre>\n

      \"Listado<\/p>\n

      RELACIONADO:<\/strong> Qu\u00e9 hacer cuando falla su disco duro<\/em><\/strong><\/p>\n

      4. Hacer una carrera en seco primero<\/h2>\n

      Antes de ver c\u00f3mo rsync<\/code> puede eliminar archivos de manera \u00fatil para nosotros, veamos c\u00f3mo podemos hacer rsync<\/code> realizar una carrera en seco.<\/p>\n

      En una carrera en seco, rsync<\/code> realiza los movimientos para realizar las acciones que le hemos pedido, pero en realidad no las realiza. Informa sobre lo que habr\u00eda sucedido si se hubiera ejecutado el comando. De esta manera, podemos asegurarnos de que el comando haga exactamente lo que esperamos.<\/p>\n

      Para forzar una ejecuci\u00f3n en seco usamos el --dry-run<\/code> opci\u00f3n.<\/p>\n

      rsync -av --dry-run \/home\/dave\/geocoder \/run\/mount\/drive2<\/pre>\n

      \"Realizaci\u00f3n<\/p>\n

      Se enumeran los archivos que se habr\u00edan copiado y obtenemos las estad\u00edsticas habituales, seguidas del mensaje (DRY RUN)<\/code> para que sepamos que en realidad no ocurri\u00f3 nada.<\/p>\n

      5. Eliminaci\u00f3n de archivos en el directorio de destino<\/h2>\n

      los --delete<\/code> opci\u00f3n dice rsync<\/code> para eliminar archivos y directorios en el destino<\/em> directorio que no est\u00e1 en el directorio de origen. Esto significa que el directorio de destino ser\u00e1 una copia exacta del directorio de origen. Seremos prudentes y usaremos el --dry-run<\/code> opci\u00f3n primero.<\/p>\n

      rsync -av --delete --dry-run \/home\/dave\/geocoder \/run\/mount\/drive2<\/pre>\n

      \"Realizaci\u00f3n<\/p>\n

      Se nos informa que se eliminar\u00e1n dos archivos. Si estamos seguros de que no nos importa que se eliminen, podemos quitar el --dry-run<\/code> opci\u00f3n y llevar a cabo el comando de verdad.<\/p>\n

      rsync -av --delete \/home\/dave\/geocoder \/run\/mount\/drive2<\/pre>\n

      \"Copiar<\/p>\n

      Esta vez se sincronizan los contenidos de los directorios y se eliminan los dos archivos adicionales.<\/p>\n

      6. Eliminaci\u00f3n de los archivos de origen<\/h2>\n

      Puede optar por eliminar los archivos de origen despu\u00e9s de un transferencia exitosa<\/em>haciendo rsync<\/code> operar m\u00e1s como un movimiento que como una copia. Si la transferencia no se realiz\u00f3 correctamente, los archivos de origen no se eliminan. La opci\u00f3n que debemos usar es --remove-source-files<\/code> .<\/p>\n

      rsync -av --remove-source-files \/home\/dave\/geocoder \/run\/mount\/drive2<\/pre>\n

      \"Obligar<\/p>\n

      Tenga en cuenta que los archivos se pueden eliminar incluso si no se transfiere ning\u00fan archivo. Eso es porque si rsync<\/code> cheques, y todos los archivos ya est\u00e1n en el directorio de destino y no hay nada para rsync<\/code> que hacer, rsync<\/code> considera que una transferencia exitosa.<\/p>\n

      Tambi\u00e9n, rsync<\/code> solo borra el archivos<\/em> del directorio de origen. No elimina el directorio de origen ni ning\u00fan subdirectorio, solo los archivos que contienen. Esto lo podemos ver usando el -R<\/code> opci\u00f3n (recursiva) con ls<\/code>en el directorio de origen.<\/p>\n

      ls -R geocoder<\/pre>\n

      \"Un<\/p>\n

      7. Copiar archivos a una computadora remota<\/h2>\n

      Para sincronizar carpetas con una computadora remota, rsync<\/code> debe instalarse en ambos equipos. Configure la comunicaci\u00f3n SSH entre las dos computadoras antes de intentar usar rsync<\/code> a la computadora remota.<\/p>\n

      Debe poder iniciar sesi\u00f3n de forma remota como un usuario normal en la computadora remota para rsync<\/code> trabajar. No importa si usa una identificaci\u00f3n y una contrase\u00f1a para iniciar sesi\u00f3n, o si configur\u00f3 claves SSH para un acceso seguro sin contrase\u00f1a, pero si no puede iniciar sesi\u00f3n como usuario, entonces rsync<\/code> tampoco funcionar\u00e1.<\/p>\n

      Si inicia sesi\u00f3n con una contrase\u00f1a, rsync<\/code> le pedir\u00e1 la contrase\u00f1a. Si usa claves SSH para iniciar sesi\u00f3n, el proceso es perfecto.<\/p>\n

      Lo \u00fanico adicional que debe hacer es agregar el nombre de la cuenta de usuario y la direcci\u00f3n IP de la computadora remota al inicio de la ruta del archivo de destino. Use un signo de arroba \u201c@<\/code>\u201d para separar el nombre de usuario del nombre de la computadora o la direcci\u00f3n IP, y dos puntos \u201c:<\/code>\u201d para separar el nombre de la computadora o la direcci\u00f3n IP de la ruta del directorio.<\/p>\n

      En nuestra red de prueba, estos dos comandos son equivalentes.<\/p>\n

      rsync -av \/home\/dave\/geocoder dave@nostromo.local:\/home\/dave\/Downloads<\/pre>\n
      rsync -av \/home\/dave\/geocoder dave@192.168.86.60:\/home\/dave\/Downloads<\/pre>\n

      \"Copiar<\/p>\n

      Recibimos la misma informaci\u00f3n que cuando copiamos archivos localmente.<\/p>\n

      8. Incluir o excluir archivos o directorios<\/h2>\n

      Es posible que tenga archivos y directorios en el directorio de origen que no desea copiar a la computadora de destino. Puede excluirlos utilizando el --exclude<\/code> opci\u00f3n. De manera similar, puede optar por incluir archivos y directorios espec\u00edficos con el --include<\/code> opci\u00f3n.<\/p>\n

      La peculiaridad es que si usas el --include<\/code> opci\u00f3n por s\u00ed sola, todos los archivos se copian normalmente, incluidos los archivos incluidos espec\u00edficamente. Para copiar solo los archivos incluidos, debe --exclude <\/code> todo lo demas.<\/p>\n

      Puedes usar tantos --include<\/code> y --exclude<\/code> opciones en su comando como desee, pero aseg\u00farese de poner su --include<\/code> opciones antes de su --exclude<\/code> opciones Adem\u00e1s, aseg\u00farese de tener una barra diagonal final en la ruta del archivo de origen.<\/p>\n

      Este comando copia solo archivos de c\u00f3digo fuente C y archivos de datos CSV en la computadora de destino.<\/p>\n

      rsync -av --include=\"*.c\" --include=\"*.csv\" --exclude=\"*\" \/home\/dave\/geocoder\/ \/run\/mount\/drive2\/geocoder<\/code><\/pre>\n

      \"Usando<\/p>\n

      Los \u00fanicos archivos copiados son los que incluimos espec\u00edficamente.<\/p>\n

      9. Comprimir archivos en transferencia<\/h2>\n

      los -z<\/code> Causas de la opci\u00f3n (comprimir) rsync<\/code> para comprimir los archivos transferidos. Sin embargo, no se almacenan como archivos comprimidos en la computadora de destino, solo se comprimen durante la transferencia. Esto puede acelerar las transferencias largas.<\/p>\n

      rsync -avz \/home\/dave\/geocoder \/run\/mount\/drive2<\/pre>\n

      \"Comprimir<\/p>\n

      10. Seguimiento del progreso<\/h2>\n

      Hablando de transferencias largas, podemos agregar algunas estad\u00edsticas para que podamos ver el progreso de la transferencia.<\/p>\n

      los -P<\/code> (parcial, progreso) en realidad agrega dos opciones, --partial<\/code> y --progress<\/code> . los --partial<\/code> opci\u00f3n dice rsync<\/code> para mantener los archivos transferidos parcialmente si falla una transferencia. Esto ahorra tiempo cuando se reinicia la transferencia.<\/p>\n

      los --progress<\/code> La opci\u00f3n imprime, para cada archivo, los datos transferidos en bytes y como porcentaje, la velocidad de la transferencia, el tiempo empleado, el n\u00famero del archivo que se est\u00e1 transfiriendo y la cuenta de los archivos restantes.<\/p>\n

      rsync -aP \/home\/dave\/geocoder \/run\/mount\/drive2<\/pre>\n

      \"Uso<\/p>\n

      La salida se desplaza bastante r\u00e1pido y es dif\u00edcil de leer. Puedes mejorar las cosas un poco eliminando el -v<\/code> (detallado) opci\u00f3n del comando. Incluso entonces, sigue siendo dif\u00edcil de leer mientras pasa zumbando.<\/p>\n

      \"Estad\u00edsticas<\/p>\n

      A menudo es m\u00e1s \u00fatil monitorear el progreso de la transferencia general. Puede hacer esto con la opci\u00f3n \u2013info y pas\u00e1ndole \u201cprogress2\u201d como par\u00e1metro.<\/p>\n

      sync -a --info=progress2 \/home\/dave\/geocoder \/run\/mount\/drive2<\/pre>\n

      \"Estad\u00edsticas<\/p>\n

      Esto da un informe de progreso que es realmente \u00fatil.<\/p>\n

      Como cp en esteroides<\/h2>\n

      los rsync<\/code> El comando es r\u00e1pido, flexible y vale la pena el tiempo que lleva familiarizarse con \u00e9l. La forma b\u00e1sica de un rsync<\/code> comando con el -av<\/code> Las opciones, el directorio de origen y el directorio de destino no son dif\u00edciles de recordar.<\/p>\n

      Para muchos casos de uso, eso es todo lo que necesita. Ponte c\u00f3modo con eso y el resto vendr\u00e1 f\u00e1cilmente.<\/p>\n

      RELACIONADO:<\/strong> La gu\u00eda para no principiantes sobre la sincronizaci\u00f3n de datos con Rsync<\/em><\/strong><\/p>\n<\/div>\n