{"id":4798,"date":"2024-02-13T12:28:18","date_gmt":"2024-02-13T11:28:18","guid":{"rendered":"https:\/\/www.hostingtg.com\/blog\/?p=4798"},"modified":"2024-02-13T12:28:21","modified_gmt":"2024-02-13T11:28:21","slug":"rsync-sincronizar-directorios","status":"publish","type":"post","link":"https:\/\/www.hostingtg.com\/blog\/rsync-sincronizar-directorios\/","title":{"rendered":"Rsync: C\u00f3mo sincronizar directorios locales y remotos"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Rsync<\/strong> se ha convertido en una herramienta indispensable para sincronizar archivos y directorios de manera eficaz entre ubicaciones locales y remotas. Su capacidad \u00fanica para optimizar la transferencia de datos, enviando solo las diferencias entre los archivos fuente y destino, lo hace excepcionalmente eficiente. Esta eficiencia no solo reduce el ancho de banda necesario sino tambi\u00e9n el tiempo de transferencia, lo que lo convierte en una soluci\u00f3n ideal para respaldos, recuperaci\u00f3n de datos y la sincronizaci\u00f3n de archivos en m\u00faltiples ubicaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rsync<\/strong> destaca por su flexibilidad, permitiendo a los usuarios mantener versiones consistentes de archivos en diferentes discos o sistemas sin esfuerzo. Ya sea que necesite sincronizar archivos entre su computadora personal y un servidor remoto o mantener copias espejo de directorios importantes en diferentes dispositivos, <strong>Rsync<\/strong> ofrece una soluci\u00f3n robusta y confiable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A lo largo de esta gu\u00eda, detallaremos c\u00f3mo instalar y utilizar <strong>Rsync<\/strong>, cubriendo desde la sintaxis b\u00e1sica hasta opciones avanzadas y ejemplos pr\u00e1cticos. Nuestro objetivo es proporcionar una comprensi\u00f3n completa de c\u00f3mo <strong>Rsync<\/strong> puede simplificar la tarea de sincronizaci\u00f3n de archivos, asegurando que sus datos est\u00e9n siempre actualizados y seguros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es Rsync?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hostingtg.com\/blog\/wp-content\/uploads\/2024\/02\/rsync-ssh-1.webp\"><img fetchpriority=\"high\" decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/www.hostingtg.com\/blog\/wp-content\/uploads\/2024\/02\/rsync-ssh-1.webp\" alt=\"rsync ssh 1\" class=\"wp-image-4802\" title=\"\"><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rsync<\/strong> es una herramienta de <a href=\"https:\/\/www.hostingtg.com\/blog\/comandos-linux\/\">l\u00ednea de comandos<\/a> ampliamente utilizada para la <strong>sincronizaci\u00f3n r\u00e1pida y eficiente<\/strong> de archivos y directorios entre dos ubicaciones, ya sean locales o a trav\u00e9s de una red. Su dise\u00f1o est\u00e1 enfocado en minimizar el volumen de datos transferidos al detectar diferencias entre las fuentes y los destinos, transfiriendo solo los cambios. Esta eficiencia lo hace ideal para operaciones de respaldo, replicaci\u00f3n de sitios y como una herramienta general de transferencia de archivos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las caracter\u00edsticas m\u00e1s destacadas de <strong>rsync<\/strong> es su algoritmo de diferencia, que permite actualizar archivos con cambios m\u00ednimos sin necesidad de transferir el archivo completo. Esto no solo acelera significativamente la transferencia de archivos grandes a trav\u00e9s de conexiones lentas, sino que tambi\u00e9n reduce la carga en las redes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, <strong>rsync<\/strong> es altamente configurable, ofreciendo una amplia gama de opciones que permiten a los usuarios controlar exactamente qu\u00e9 archivos se transfieren, c\u00f3mo se transfieren y qu\u00e9 acciones se realizan antes o despu\u00e9s de la transferencia. Esto incluye opciones para preservar los permisos de archivos, enlaces simb\u00f3licos, y otros metadatos, lo que lo hace especialmente \u00fatil para respaldos completos de sistemas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otra ventaja significativa de <strong>rsync<\/strong> es su capacidad para realizar transferencias seguras utilizando <strong>SSH<\/strong> (Secure Shell), proporcionando una capa adicional de seguridad al cifrar los datos enviados a trav\u00e9s de la red. Esto lo convierte en una herramienta invaluable para administradores de sistemas y usuarios que necesitan garantizar la integridad y confidencialidad de sus datos durante la sincronizaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instalar Rsync<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">instalar <strong>rsync<\/strong> es un proceso sencillo, pero el m\u00e9todo var\u00eda dependiendo del sistema operativo que est\u00e9 utilizando. Para la mayor\u00eda de los sistemas basados en Unix, como Linux y macOS, <strong>rsync<\/strong> ya viene preinstalado o se puede instalar f\u00e1cilmente a trav\u00e9s del gestor de paquetes del sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En sistemas <strong>Linux<\/strong>, puede instalar <strong>rsync<\/strong> utilizando el gestor de paquetes de su distribuci\u00f3n. Por ejemplo, en distribuciones basadas en Debian o <a href=\"https:\/\/www.hostingtg.com\/blog\/ubuntu-23-10-todo-lo-que-necesitas-saber\/\">Ubuntu<\/a>, puede utilizar el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install rsync\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para usuarios de <strong>Fedora<\/strong>, <strong>CentOS<\/strong>, o <strong>RHEL<\/strong>, el comando ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo yum install rsync\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">o, en versiones m\u00e1s recientes que usan <strong>dnf<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install rsync\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En <strong>macOS<\/strong>, <strong>rsync<\/strong> generalmente viene preinstalado. Sin embargo, si necesita actualizar a una versi\u00f3n m\u00e1s reciente o si por alguna raz\u00f3n no est\u00e1 instalado, puede utilizar <strong>Homebrew<\/strong>, un gestor de paquetes para macOS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>brew install rsync\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para los usuarios de <strong>Windows<\/strong>, <strong>rsync<\/strong> no est\u00e1 disponible de manera nativa, pero se puede utilizar a trav\u00e9s de un entorno como <strong>Cygwin<\/strong> o el <strong>Subsistema de Windows para Linux (WSL)<\/strong>. <strong>Cygwin<\/strong> proporciona una gran colecci\u00f3n de herramientas de software GNU y de c\u00f3digo abierto que ofrecen funcionalidad similar a la de un sistema Linux, mientras que <strong>WSL<\/strong> permite a los usuarios ejecutar un entorno de Linux directamente en Windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instalar <strong>rsync<\/strong> en <strong>Cygwin<\/strong> implica seleccionar el paquete <strong>rsync<\/strong> durante el proceso de instalaci\u00f3n de <strong>Cygwin<\/strong>. Por otro lado, si est\u00e1 utilizando <strong>WSL<\/strong>, puede instalar <strong>rsync<\/strong> utilizando el gestor de paquetes de la distribuci\u00f3n de Linux que haya elegido, de la misma manera que lo har\u00eda en un sistema Linux.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hostingtg.com\/blog\/wp-content\/uploads\/2024\/02\/rsync.webp\"><img decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/www.hostingtg.com\/blog\/wp-content\/uploads\/2024\/02\/rsync.webp\" alt=\"rsync\" class=\"wp-image-4803\" title=\"\"><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Sintaxis b\u00e1sica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La <strong>sintaxis b\u00e1sica<\/strong> de <strong>rsync<\/strong> refleja su flexibilidad y potencia como herramienta de sincronizaci\u00f3n. A su nivel m\u00e1s fundamental, <strong>rsync<\/strong> se utiliza especificando un origen y un destino, que pueden ser archivos o directorios, locales o en una m\u00e1quina remota. El formato general se ve as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync &#91;opciones] origen destino\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El <em>origen<\/em> puede ser un archivo o directorio local, o una ubicaci\u00f3n remota accesible a trav\u00e9s de SSH o rsync daemon. El <em>destino<\/em> es donde se copiar\u00e1n los archivos o directorios. <strong>Rsync<\/strong> puede sincronizar en ambas direcciones: puede actualizar el contenido en el destino para que coincida con el origen, o viceversa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una caracter\u00edstica clave de <strong>rsync<\/strong> es su uso de opciones que permiten al usuario controlar el comportamiento de la sincronizaci\u00f3n. Estas opciones se pueden combinar de maneras complejas para lograr exactamente el tipo de sincronizaci\u00f3n deseado. Algunas de las opciones m\u00e1s comunes incluyen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-a, --archive<\/code>: Este modo es una de las opciones m\u00e1s utilizadas. Activa varios modos (como <code>-rlptgoD<\/code>) para asegurar que los archivos se copien de manera recursiva y que se conserven los permisos, los tiempos de modificaci\u00f3n, los enlaces simb\u00f3licos y la estructura de directorios, lo que lo hace ideal para copias de seguridad completas.<\/li>\n\n\n\n<li><code>-v, --verbose<\/code>: Proporciona informaci\u00f3n detallada sobre la operaci\u00f3n de sincronizaci\u00f3n, lo que es \u00fatil para el diagn\u00f3stico o para entender exactamente qu\u00e9 est\u00e1 haciendo <strong>rsync<\/strong>.<\/li>\n\n\n\n<li><code>-z, --compress<\/code>: Reduce el tama\u00f1o de los datos durante la transferencia, lo que puede ser especialmente \u00fatil al trabajar con conexiones de red lentas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La flexibilidad en la especificaci\u00f3n del <em>origen<\/em> y <em>destino<\/em> significa que puede utilizar <strong>rsync<\/strong> para una amplia gama de tareas de sincronizaci\u00f3n, desde hacer copias de seguridad locales hasta actualizar sitios web en un servidor remoto. Por ejemplo, para copiar un directorio local a otro directorio local, simplemente especifique las rutas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av \/path\/to\/source\/ \/path\/to\/destination\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para sincronizar un directorio local con uno en un servidor remoto, incluya la direcci\u00f3n del servidor, precedida por el usuario y seguida de la ruta en el servidor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av \/path\/to\/source\/ usuario@servidor:\/path\/to\/destination\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El uso de <strong>rsync<\/strong> no se limita a copiar archivos; su verdadera potencia yace en su capacidad para sincronizar efectivamente grandes cantidades de datos con un m\u00ednimo de transferencia de red, haciendo que las actualizaciones sean r\u00e1pidas y eficientes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Opciones y argumentos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Las <strong>opciones y argumentos<\/strong> de <strong>rsync<\/strong> son lo que realmente le dan a esta herramienta su poder y versatilidad. Al entender y utilizar estas opciones, los usuarios pueden personalizar sus operaciones de sincronizaci\u00f3n para adaptarse a una amplia gama de necesidades y escenarios. Aqu\u00ed detallamos algunas de las opciones m\u00e1s comunes y \u00fatiles, adem\u00e1s de c\u00f3mo pueden influir en el comportamiento de <strong>rsync<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>-r, &#8211;recursive<\/strong>: Esta opci\u00f3n es crucial cuando se necesita copiar directorios completos. Hace que <strong>rsync<\/strong> copie de forma recursiva, asegurando que todos los subdirectorios y archivos dentro del directorio de origen se transfieran al destino.<\/li>\n\n\n\n<li><strong>-l, &#8211;links<\/strong>: Con esta opci\u00f3n, <strong>rsync<\/strong> trata de mantener todos los enlaces simb\u00f3licos encontrados en el proceso de sincronizaci\u00f3n. Es especialmente \u00fatil cuando se trabaja en sistemas de archivos Linux\/Unix que hacen uso extensivo de enlaces simb\u00f3licos.<\/li>\n\n\n\n<li><strong>-p, &#8211;perms<\/strong>: Para mantener los permisos de archivo originales en el destino, esta opci\u00f3n es indispensable. Asegura que la sincronizaci\u00f3n respete y aplique los mismos permisos de archivos y directorios que existen en el origen.<\/li>\n\n\n\n<li><strong>-t, &#8211;times<\/strong>: Mantener las marcas de tiempo de los archivos es crucial para muchas operaciones de sincronizaci\u00f3n, especialmente para respaldos. Esta opci\u00f3n asegura que las fechas de modificaci\u00f3n de los archivos se conserven, permitiendo una sincronizaci\u00f3n m\u00e1s inteligente que solo actualiza los archivos modificados desde la \u00faltima sincronizaci\u00f3n.<\/li>\n\n\n\n<li><strong>-z, &#8211;compress<\/strong>: Al reducir el tama\u00f1o de los datos durante la transferencia, esta opci\u00f3n puede acelerar significativamente las sincronizaciones a trav\u00e9s de redes lentas o saturadas. Es ideal para optimizar el ancho de banda disponible.<\/li>\n\n\n\n<li><strong>&#8211;delete<\/strong>: Una poderosa opci\u00f3n que elimina archivos en el destino que ya no existen en el origen. Es crucial para mantener un espejo exacto del directorio de origen, pero debe usarse con precauci\u00f3n para evitar la eliminaci\u00f3n inadvertida de archivos.<\/li>\n\n\n\n<li><strong>&#8211;exclude<\/strong>: Esta funcionalidad es esencial para omitir archivos o directorios espec\u00edficos de la sincronizaci\u00f3n. Puede usarse para excluir archivos temporales o de cach\u00e9 que no necesitan ser transferidos.<\/li>\n\n\n\n<li><strong>&#8211;dry-run<\/strong>: Una opci\u00f3n indispensable para la planificaci\u00f3n y prueba de comandos <strong>rsync<\/strong>. Ejecuta el comando sin realizar cambios reales, proporcionando una lista de lo que se har\u00eda. Es una excelente manera de verificar el efecto de un comando antes de ejecutarlo realmente.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cada una de estas opciones se puede combinar para crear comandos <strong>rsync<\/strong> muy espec\u00edficos y adaptados a cualquier necesidad de sincronizaci\u00f3n. Por ejemplo, para realizar una sincronizaci\u00f3n completa que mantenga enlaces simb\u00f3licos, permisos, y marcas de tiempo, excluyendo archivos temporales y proporcionando una salida detallada sin realizar cambios reales, el comando ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -avzplt --dry-run --exclude='temp*' \/path\/to\/source\/ \/path\/to\/destination\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sincronizaci\u00f3n local<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La <strong>sincronizaci\u00f3n local<\/strong> con <strong>rsync<\/strong> implica copiar archivos o directorios dentro del mismo sistema de archivos, asegurando que dos ubicaciones en el mismo dispositivo est\u00e9n sincronizadas. Esta operaci\u00f3n es fundamental para crear respaldos locales, organizar archivos y asegurar que las copias redundantes de datos importantes est\u00e9n actualizadas. Utilizar <strong>rsync<\/strong> para sincronizaci\u00f3n local ofrece varias ventajas, incluida la eficiencia en la transferencia de archivos y la capacidad de aplicar numerosas opciones para personalizar el proceso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para realizar una sincronizaci\u00f3n local, el comando b\u00e1sico de <strong>rsync<\/strong> sigue la misma estructura que para cualquier otro tipo de sincronizaci\u00f3n, pero sin la necesidad de especificar un host remoto. La sintaxis b\u00e1sica ser\u00eda as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este comando, <code>-a<\/code> activa el modo de archivo, que es una combinaci\u00f3n de opciones que preserva los permisos, los enlaces simb\u00f3licos, y otros atributos, mientras que <code>-v<\/code> proporciona una salida detallada de la operaci\u00f3n. La barra al final de la ruta de origen es importante; indica a <strong>rsync<\/strong> que sincronice el contenido del directorio, y no el directorio en s\u00ed, lo cual es crucial para asegurar que la estructura de directorios en el destino refleje exactamente al origen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>rsync<\/strong> tambi\u00e9n permite una gran flexibilidad en c\u00f3mo se manejan los archivos existentes. Por defecto, <strong>rsync<\/strong> solo actualizar\u00e1 los archivos en el destino que han cambiado en el origen, lo que ahorra tiempo y recursos. Sin embargo, con opciones adicionales, los usuarios pueden modificar este comportamiento para, por ejemplo, eliminar archivos en el destino que ya no existen en el origen, utilizando la opci\u00f3n <code>--delete<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La sincronizaci\u00f3n local no se limita a copiar solo los archivos nuevos o modificados; tambi\u00e9n ofrece opciones para excluir archivos espec\u00edficos o patrones de archivos, mantener o cambiar los permisos de archivos y directorios, y mucho m\u00e1s. Por ejemplo, para excluir archivos temporales y de registro mientras se sincronizan directorios localmente, podr\u00eda usar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --exclude='*.tmp' --exclude='*.log' \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta capacidad para afinar el proceso de sincronizaci\u00f3n hace de esta herramienta incre\u00edblemente poderosa para la gesti\u00f3n de archivos locales. Ya sea que est\u00e9 respaldando datos importantes, sincronizando proyectos entre directorios, o simplemente organizando archivos, ofrece una soluci\u00f3n eficiente y personalizable para sus necesidades de sincronizaci\u00f3n local.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sincronizaci\u00f3n remota<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La <strong>sincronizaci\u00f3n remota<\/strong> con <strong>rsync<\/strong> es una de las funcionalidades m\u00e1s potentes de esta herramienta, permitiendo a los usuarios mantener sincronizados archivos y directorios entre m\u00e1quinas a trav\u00e9s de una red. Esta capacidad es esencial para administrar respaldos remotos, actualizar sitios web, o incluso para la replicaci\u00f3n de datos en entornos de recuperaci\u00f3n de desastres. <strong>Rsync<\/strong> utiliza SSH (Secure Shell) para la transferencia de datos cifrada, garantizando que la sincronizaci\u00f3n remota no solo sea eficiente sino tambi\u00e9n segura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para realizar una sincronizaci\u00f3n remota, <strong>rsync<\/strong> requiere que se especifique el host remoto y la ruta del directorio de destino en el comando. La sintaxis general para la sincronizaci\u00f3n remota se ve as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av \/ruta\/local\/ usuario@host_remoto:\/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este comando, <code>\/ruta\/local\/<\/code> representa el directorio de origen en la m\u00e1quina local, mientras que <code>usuario@host_remoto:\/ruta\/destino\/<\/code> especifica el usuario, el host remoto, y el directorio de destino. La opci\u00f3n <code>-a<\/code> activa el modo archivo para una sincronizaci\u00f3n completa, y <code>-v<\/code> proporciona una salida detallada de la operaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rsync<\/strong> optimiza la transferencia de datos al enviar solo las partes de los archivos que han cambiado, lo cual es particularmente \u00fatil en conexiones de red con ancho de banda limitado o costoso. Adem\u00e1s, la integraci\u00f3n con <strong>SSH<\/strong> no solo cifra los datos en tr\u00e1nsito sino que tambi\u00e9n facilita la autenticaci\u00f3n segura en el servidor remoto, eliminando la necesidad de configuraciones complejas de seguridad o VPNs para proteger la transferencia de datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para usuarios que necesitan mayor control sobre la transferencia, <strong>rsync<\/strong> ofrece opciones como <code>--exclude<\/code> para omitir archivos o directorios espec\u00edficos, <code>--delete<\/code> para eliminar archivos en el destino que ya no existen en el origen, y <code>--dry-run<\/code> para simular la transferencia sin realizar cambios reales. Estas opciones permiten a los usuarios adaptar el proceso de sincronizaci\u00f3n a sus necesidades espec\u00edficas, asegurando que solo los datos necesarios sean transferidos o modificados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un ejemplo avanzado de sincronizaci\u00f3n remota podr\u00eda incluir la compresi\u00f3n de datos para una transferencia m\u00e1s r\u00e1pida y la exclusi\u00f3n de archivos de registro o temporales:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -avz --exclude='*.log' --exclude='temp\/' \/ruta\/local\/ usuario@host_remoto:\/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta comando sincroniza el directorio local con el remoto, comprimiendo los datos durante la transferencia (<code>-z<\/code>), excluyendo archivos de log y el directorio <code>temp\/<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sincronizaci\u00f3n excluyendo carpetas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La <strong>sincronizaci\u00f3n excluyendo carpetas<\/strong> es una caracter\u00edstica poderosa de <strong>rsync<\/strong> que permite a los usuarios afinar sus operaciones de sincronizaci\u00f3n al excluir espec\u00edficamente directorios (y sus contenidos) que no necesitan ser transferidos. Esta capacidad es invaluable en situaciones donde ciertos directorios contienen archivos temporales, de cach\u00e9, o simplemente datos irrelevantes para la sincronizaci\u00f3n en curso. Utilizar correctamente las opciones de exclusi\u00f3n de <strong>rsync<\/strong> puede significar ahorros significativos en tiempo y recursos, especialmente en sincronizaciones a gran escala o frecuentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para excluir carpetas espec\u00edficas durante una operaci\u00f3n de sincronizaci\u00f3n con <strong>rsync<\/strong>, se utiliza la opci\u00f3n <code>--exclude<\/code>, seguida del patr\u00f3n o nombre del directorio a excluir. Los patrones pueden incluir caracteres comod\u00edn, como <code>*<\/code>, para excluir m\u00faltiples carpetas o archivos que coincidan con el patr\u00f3n dado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un ejemplo b\u00e1sico de c\u00f3mo excluir una carpeta ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --exclude 'nombre_carpeta_a_excluir\/' \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este comando, <code>nombre_carpeta_a_excluir\/<\/code> es el nombre del directorio en la ruta de origen que <strong>rsync<\/strong> omitir\u00e1 durante la sincronizaci\u00f3n. Es importante notar que el uso de la barra al final del nombre de la carpeta indica a <strong>rsync<\/strong> que el objeto excluido es un directorio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para situaciones m\u00e1s complejas, donde se necesitan excluir m\u00faltiples carpetas, se pueden a\u00f1adir m\u00faltiples opciones <code>--exclude<\/code> en el mismo comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --exclude 'temp\/' --exclude 'cach\u00e9\/' --exclude 'logs\/' \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este comando excluir\u00eda las carpetas <code>temp\/<\/code>, <code>cach\u00e9\/<\/code>, y <code>logs\/<\/code> de la sincronizaci\u00f3n. Esta t\u00e9cnica es especialmente \u00fatil para evitar la transferencia de datos que no afectan el estado o funcionamiento de la aplicaci\u00f3n o datos sincronizados, como archivos temporales o de registro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, <strong>rsync<\/strong> permite el uso de un archivo que liste m\u00faltiples patrones de exclusi\u00f3n. Esto es \u00fatil para sincronizaciones que requieren reglas de exclusi\u00f3n complejas o extensas, simplificando la l\u00ednea de comandos y haciendo el proceso de sincronizaci\u00f3n m\u00e1s manejable y menos propenso a errores. Para utilizar esta caracter\u00edstica, se crea un archivo de texto con cada patr\u00f3n de exclusi\u00f3n en una nueva l\u00ednea y se utiliza la opci\u00f3n <code>--exclude-from<\/code> seguido del nombre del archivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --exclude-from='archivo_exclusiones.txt' \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Donde <code>archivo_exclusiones.txt<\/code> contiene una lista de nombres de carpetas o patrones a excluir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sincronizaci\u00f3n excluyendo ficheros<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La <strong>sincronizaci\u00f3n excluyendo ficheros<\/strong> es otra caracter\u00edstica esencial de <strong>rsync<\/strong> que permite a los usuarios omitir archivos espec\u00edficos durante el proceso de sincronizaci\u00f3n. Esta funcionalidad es particularmente \u00fatil cuando ciertos archivos no son necesarios en el destino o cuando se desea evitar la transferencia de archivos temporales, de configuraci\u00f3n personal o sensibles. Al igual que con la exclusi\u00f3n de carpetas, <strong>rsync<\/strong> ofrece flexibilidad para excluir archivos individuales o grupos de archivos que coincidan con patrones espec\u00edficos, lo que ayuda a personalizar y optimizar las operaciones de sincronizaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para excluir archivos espec\u00edficos durante una sincronizaci\u00f3n con <strong>rsync<\/strong>, se utiliza la opci\u00f3n <code>--exclude<\/code> seguida del nombre del archivo o patr\u00f3n a excluir. Por ejemplo, para excluir todos los archivos <code>.tmp<\/code> de la sincronizaci\u00f3n, se podr\u00eda usar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --exclude '*.tmp' \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este comando evita que cualquier archivo que termine en <code>.tmp<\/code> en la ruta de origen se transfiera al destino. La utilizaci\u00f3n de caracteres comod\u00edn como <code>*<\/code> permite excluir m\u00faltiples archivos que coincidan con el pat\u00f3n dado, haciendo que esta opci\u00f3n sea extremadamente vers\u00e1til.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para situaciones donde se necesite excluir varios tipos de archivos o nombres de archivos espec\u00edficos, se pueden a\u00f1adir m\u00faltiples opciones <code>--exclude<\/code> en el mismo comando. Por ejemplo, para excluir archivos de registro y archivos temporales de cach\u00e9, el comando ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --exclude '*.log' --exclude '*cache*' \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este caso, <code>*.log<\/code> y <code>*cache*<\/code> son patrones que coinciden con todos los archivos de registro y archivos que contienen la palabra \u00abcache\u00bb en su nombre, respectivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al igual que con la exclusi\u00f3n de carpetas, tambi\u00e9n soporta la exclusi\u00f3n de archivos utilizando un archivo de exclusiones. Esto es especialmente \u00fatil para configuraciones de sincronizaci\u00f3n complejas o cuando se tiene una larga lista de archivos a excluir. Para utilizar esta funcionalidad, simplemente se crea un archivo de texto con los patrones de exclusi\u00f3n, uno por l\u00ednea, y se utiliza la opci\u00f3n <code>--exclude-from<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --exclude-from='archivo_exclusiones.txt' \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed, <code>archivo_exclusiones.txt<\/code> contendr\u00eda la lista de nombres de archivos o patrones a excluir de la sincronizaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sincronizaci\u00f3n con &#8211;dry-run<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hostingtg.com\/blog\/wp-content\/uploads\/2024\/02\/rsync-dry-run.webp\"><img decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/www.hostingtg.com\/blog\/wp-content\/uploads\/2024\/02\/rsync-dry-run.webp\" alt=\"rsync dry run\" class=\"wp-image-4804\" title=\"\"><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">la opci\u00f3n <strong>&#8211;dry-run<\/strong> de <strong>rsync<\/strong> es una herramienta invaluable para cualquier usuario que necesite planificar o verificar sus operaciones de sincronizaci\u00f3n antes de ejecutarlas. Esta opci\u00f3n simula el proceso de sincronizaci\u00f3n sin realizar ninguna transferencia de archivos o cambios en los sistemas de archivos tanto de origen como de destino. Al ejecutar con <strong>&#8211;dry-run<\/strong>, los usuarios pueden obtener una vista previa de qu\u00e9 archivos ser\u00edan a\u00f1adidos, modificados, o eliminados, permiti\u00e9ndoles ajustar sus comandos o reglas de exclusi\u00f3n antes de proceder con la sincronizaci\u00f3n real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Utilizar <strong>&#8211;dry-run<\/strong> es particularmente \u00fatil en escenarios donde las consecuencias de una sincronizaci\u00f3n incorrecta pueden ser significativas, como la sobrescritura de archivos cr\u00edticos o la eliminaci\u00f3n de datos importantes. Tambi\u00e9n es una excelente manera de aprender y experimentar con las diversas opciones de <strong>rsync<\/strong> sin el riesgo de alterar los datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para emplear esta opci\u00f3n, simplemente a\u00f1ada <strong>&#8211;dry-run<\/strong> (o <strong>-n<\/strong>) a su comando habitual. Por ejemplo, para verificar qu\u00e9 archivos ser\u00edan transferidos en una sincronizaci\u00f3n sin realizar la transferencia real, usar\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --dry-run \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este comando proporcionar\u00e1 una lista de las acciones que <strong>rsync<\/strong> llevar\u00eda a cabo si se ejecutara sin la opci\u00f3n <strong>&#8211;dry-run<\/strong>, incluidas las transferencias de archivos, las actualizaciones y las eliminaciones. Es una forma efectiva de verificar que sus patrones de exclusi\u00f3n funcionen como se espera, que los permisos de archivos y directorios se conserven correctamente, y que solo los datos deseados sean sincronizados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de verificar la precisi\u00f3n de los comandos de sincronizaci\u00f3n, <strong>&#8211;dry-run<\/strong> puede ser \u00fatil para generar registros de qu\u00e9 cambios se necesitar\u00edan sin realizar esos cambios. Esto puede ser valioso para auditor\u00edas de archivos, planificaci\u00f3n de respaldos, o incluso para tareas de mantenimiento rutinario donde se requiere una revisi\u00f3n previa de las acciones propuestas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ejemplos avanzados Rsync<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los <strong>ejemplos avanzados rsync<\/strong> ilustran la potencia y versatilidad de esta herramienta, mostrando c\u00f3mo se puede adaptar a una variedad de necesidades complejas de sincronizaci\u00f3n. A trav\u00e9s de la combinaci\u00f3n de opciones y argumentos, <strong>rsync<\/strong> puede manejar desde sincronizaciones de archivos detalladas hasta operaciones de respaldo y replicaci\u00f3n a gran escala. Estos ejemplos avanzados sirven como gu\u00eda para aprovechar al m\u00e1ximo las capacidades de la herramienta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uno de los ejemplos avanzados incluye la sincronizaci\u00f3n de un directorio local con uno remoto a trav\u00e9s de <strong>SSH<\/strong>, asegurando que la transferencia de datos sea segura y encriptada. Para este prop\u00f3sito, se utiliza la opci\u00f3n <code>-e<\/code> para especificar <strong>SSH<\/strong> como el m\u00e9todo de transporte:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -avz -e ssh \/ruta\/local\/ usuario@host_remoto:\/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este comando no solo sincroniza los directorios de manera eficiente, comprimiendo los datos durante la transferencia (<code>-z<\/code>) y manteniendo los permisos y la estructura de directorios (<code>-a<\/code>), sino que tambi\u00e9n protege los datos mediante encriptaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para usuarios que necesitan realizar copias de seguridad incrementales, <strong>rsync<\/strong> ofrece una soluci\u00f3n robusta con la creaci\u00f3n de enlaces simb\u00f3licos a los archivos no modificados, usando la opci\u00f3n <code>--link-dest<\/code>. Esto permite que las copias de seguridad ocupen menos espacio, ya que solo se almacenan las versiones nuevas o modificadas de los archivos, mientras que para los archivos sin cambios se crean enlaces al respaldo anterior:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -av --link-dest=\/ruta\/respaldo\/anterior \/ruta\/origen\/ \/ruta\/respaldo\/actual\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este enfoque es especialmente valioso para administradores de sistemas y profesionales de TI que buscan optimizar el almacenamiento de respaldos sin sacrificar la accesibilidad o integridad de los datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otro ejemplo avanzado implica el uso de <strong>rsync<\/strong> para espejar un sitio web, excluyendo archivos o directorios espec\u00edficos que no son necesarios para la copia espejo, como scripts de servidor o datos de configuraci\u00f3n. Combinando <code>--exclude<\/code> con otras opciones, se puede personalizar la sincronizaci\u00f3n para ajustarse a los requisitos exactos del sitio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -avz --exclude 'data\/' --exclude '.htaccess' \/var\/www\/ usuario@host_remoto:\/var\/www_espejo\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, para administradores que deseen verificar las operaciones de sincronizaci\u00f3n antes de ejecutarlas, la combinaci\u00f3n de <code>--dry-run<\/code> con una salida detallada (<code>-v<\/code>) y la opci\u00f3n <code>--stats<\/code> para obtener un resumen estad\u00edstico, proporciona una herramienta de diagn\u00f3stico y planificaci\u00f3n excepcional:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rsync -avz --dry-run --stats \/ruta\/origen\/ \/ruta\/destino\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Estos <strong>ejemplos avanzados rsync<\/strong> demuestran c\u00f3mo la herramienta puede ser adaptada para cumplir con requisitos espec\u00edficos de sincronizaci\u00f3n, respaldo, y replicaci\u00f3n de datos, ofreciendo a los usuarios un control sin precedentes sobre sus operaciones de transferencia de archivos. La clave para desbloquear el potencial completo de <strong>rsync<\/strong> reside en comprender y aplicar sus numerosas opciones y argumentos de manera efectiva.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preguntas frecuentes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuede rsync reanudar transferencias interrumpidas?<\/strong> S\u00ed, <strong>rsync<\/strong> es capaz de reanudar transferencias de archivos interrumpidas. Utilizando la opci\u00f3n <code>--partial<\/code>, <strong>rsync<\/strong> guarda las partes de archivos que fueron transferidas antes de la interrupci\u00f3n, permitiendo que la transferencia contin\u00fae desde el punto de interrupci\u00f3n en vez de empezar de nuevo desde cero. Esto es especialmente \u00fatil para transferir archivos grandes a trav\u00e9s de conexiones inestables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfC\u00f3mo asegurar la transferencia de datos con rsync?<\/strong> Para asegurar la transferencia de datos, <strong>rsync<\/strong> puede ser usado junto con <strong>SSH<\/strong> para encriptar la conexi\u00f3n. Esto se logra con la opci\u00f3n <code>-e ssh<\/code>, que especifica <strong>SSH<\/strong> como el m\u00e9todo de transporte. Esta pr\u00e1ctica no solo protege los datos durante la transferencia sino que tambi\u00e9n aprovecha la autenticaci\u00f3n y seguridad inherentes a <strong>SSH<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfrsync puede sincronizar archivos en ambos sentidos?<\/strong> Por defecto, <strong>rsync<\/strong> est\u00e1 dise\u00f1ado para sincronizar archivos en una sola direcci\u00f3n, ya sea de local a remoto o viceversa. Sin embargo, para lograr una sincronizaci\u00f3n bidireccional, se pueden utilizar herramientas de terceros que envuelven <strong>rsync<\/strong> o ejecutar dos operaciones <strong>rsync<\/strong> sucesivas, una en cada direcci\u00f3n, teniendo cuidado con las exclusiones y sobreescrituras para evitar la p\u00e9rdida de datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfC\u00f3mo excluir archivos o carpetas espec\u00edficos en rsync?<\/strong> Para excluir archivos o carpetas espec\u00edficos durante una operaci\u00f3n de sincronizaci\u00f3n, se utiliza la opci\u00f3n <code>--exclude<\/code>, seguida del patr\u00f3n de archivo o nombre de carpeta a excluir. Tambi\u00e9n permite el uso de la opci\u00f3n <code>--exclude-from<\/code> para especificar un archivo que contenga una lista de patrones de exclusi\u00f3n, lo que facilita la gesti\u00f3n de exclusiones complejas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfC\u00f3mo maneja rsync los enlaces simb\u00f3licos?<\/strong> <strong>Rsync<\/strong> puede copiar enlaces simb\u00f3licos de varias maneras, dependiendo de las opciones utilizadas. Con la opci\u00f3n <code>-l<\/code> o <code>--links<\/code>, recrear\u00e1 el enlace simb\u00f3lico en el destino. Si se utiliza <code>-a<\/code>, que es una combinaci\u00f3n de varias opciones, incluida <code>-l<\/code>, los enlaces simb\u00f3licos se conservar\u00e1n como tales. Para copiar el contenido al que apunta el enlace simb\u00f3lico, en lugar del enlace en s\u00ed, se puede usar la opci\u00f3n <code>-L<\/code> o <code>--copy-links<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rsync se ha convertido en una herramienta indispensable para sincronizar archivos y directorios de manera eficaz entre ubicaciones locales y remotas. Su capacidad \u00fanica para optimizar la transferencia de datos, enviando solo las diferencias entre los archivos fuente y destino, lo hace excepcionalmente eficiente. Esta eficiencia no solo reduce el ancho de banda necesario sino [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4800,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_aifi_custom_prompt":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[192],"tags":[],"class_list":["post-4798","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales"],"_links":{"self":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/4798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/comments?post=4798"}],"version-history":[{"count":3,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/4798\/revisions"}],"predecessor-version":[{"id":4806,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/4798\/revisions\/4806"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media\/4800"}],"wp:attachment":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media?parent=4798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/categories?post=4798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/tags?post=4798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}