{"id":417,"date":"2011-02-01T21:20:56","date_gmt":"2011-02-02T02:20:56","guid":{"rendered":"https:\/\/rafael.bonifaz.ec\/blog\/?p=417"},"modified":"2011-02-01T21:20:56","modified_gmt":"2011-02-02T02:20:56","slug":"sincronizar-yo-respaldar-directorios-con-ssh-y-rsync","status":"publish","type":"post","link":"https:\/\/rafael.bonifaz.ec\/blog\/2011\/02\/sincronizar-yo-respaldar-directorios-con-ssh-y-rsync\/","title":{"rendered":"Sincronizar y\/o Respaldar directorios con SSH y RSYNC"},"content":{"rendered":"<p>Es muy probable que se requiera replicar la informaci\u00f3n de un directorio de una m\u00e1quina o servidor a otro en mi red local o en Internet. Con <a href=\"http:\/\/es.wikipedia.org\/wiki\/Rsync\">RSYNC<\/a> podr\u00edamos hacer cosas simples como sacar respaldos incrementales a un disco duro externo, a otra m\u00e1quina en la red. Tambi\u00e9n nos sirve para sincronizar directorios a trav\u00e9s del Internet y tener mirrors de un sitio web distribuidos en la red. Esto es lo que hacemos para los repositorios de <a href=\"http:\/\/www.elastix.org\">Elastix<\/a> y lo que hace <a href=\"http:\/\/wikileaks.ch\/Mirrors.html\">Wikileaks con sus cientos de mirrors.<\/a><\/p>\n<p>Si bien RSYNC no necesita de SSH para sincronizar, utilizar los 2 en conjunto tiene algunas ventajas entre las que destaco algunas:<\/p>\n<ul>\n<li>La informaci\u00f3n viaja encriptada<\/li>\n<li>No necesito correr un servidor RSYNC<\/li>\n<li>Solo necesito preocuparme de tener abierto el puerto de SSH<!--more--><\/li>\n<\/ul>\n<p style=\"padding-left: 30px;\"><strong> Nota<\/strong>: todos los ejemplos son una sola l\u00ednea<\/p>\n<h2>Ejemplo 1: Sincronizar 2 servidores web<\/h2>\n<p style=\"padding-left: 30px;\"><code>rsync -avz --delete \u00a0-e ssh \/var\/www\/sitioweb usuario@servidorremoto.com:\/var\/www\/mirror<\/code><\/p>\n<p>Las opciones quieren decir:<\/p>\n<ul>\n<li><strong>-a<\/strong> Sirve para hacer una sincronizaci\u00f3n recursiva<\/li>\n<li><strong>-v<\/strong> Sirve para mostrar en pantalla informaci\u00f3n de lo que esta haciendo el proceso<\/li>\n<li><strong>-z<\/strong> Sirve para enviar la informaci\u00f3n comprimida y ahorrrar ancho de banda<\/li>\n<li><strong>&#8211;delete<\/strong> Sirve para borrar del destino todo lo que no esta en el origen. En otras palabras para tener un mirror 100% igual.<\/li>\n<li><strong>-e ssh<\/strong>: Es la parte del comando que hace que este art\u00edculo sea catalogado como un tip ssh ;). B\u00e1sicamente sirve para hacer la sincronizaci\u00f3n utilizando el protocolo ssh<\/li>\n<\/ul>\n<p>Al igual que SCP el primer directorio es el origen y el segundo es el destino.<\/p>\n<h2>Ejemplo 2: Sincronizar con puerto \u00a0no Estandard<\/h2>\n<p>Algo muy com\u00fan es que la gente \u00a0corra el servidor SSH en un puerto distinto al 22. Inclusive hace unos d\u00edas publiqu\u00e9 como hacer para que escuche<a href=\"http:\/\/bonifaz.ec\/ssh443\"> en el puerto 443<\/a>. Ahora explicamos como sincronizar los 2 directorios donde el puerto del destino no es estandard.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: monospace;\">rsync -avz &#8211;delete &#8211;rsh=&#8217;ssh -p 443&#8242;  \/var\/www\/sitioweb usuario@servidorremoto.com:\/var\/www\/mirror<\/span><\/p>\n<p>Como pueden ver hay un solo cambio en este ejemplo. En lugar de usar<em><strong> -e ssh<\/strong><\/em> utilizamos<strong> &#8211;<\/strong><em><strong>-rsh=&#8217;ssh -p 443&#8242;<\/strong><\/em>. B\u00e1sicamente estamos diciendo que se utilice el puerto 443 en lugar del puerto 22.<\/p>\n<h2>Recomendaciones<\/h2>\n<p>Si desean hacer tareas automatizadas como usar su servidor como un mirror de un tercer (ej. Elastix, Wikileaks \ud83d\ude09 ) es muy recomendable crear un ambiente <a href=\"http:\/\/bonifaz.ec\/sshchroot\">enjaulado para ese usuario SSH<\/a> y seguro necesitar\u00e1 trabajar c<a href=\"http:\/\/bonifaz.ec\/sshclaves\">on autenticaci\u00f3n con llaves p\u00fablicas y privadas.<\/a><\/p>\n<h3 class='related_post_title'>Art\u00edculos relacionados<\/h3><ul class='related_post'><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/02\/tips-ssh\/\" title=\"11 + 1 Tips SSH\">11 + 1 Tips SSH<\/a><\/li><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/02\/proteger-ssh-con-fail2ban\/\" title=\"Proteger SSH con Fail2Ban\">Proteger SSH con Fail2Ban<\/a><\/li><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/01\/sshconfig-simplifica-nuestra-vida-con-ssh\/\" title=\"Simplifica tu vida gracias a ~\/.ssh\/config\">Simplifica tu vida gracias a ~\/.ssh\/config<\/a><\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>Es muy probable que se requiera replicar la informaci\u00f3n de un directorio de una m\u00e1quina o servidor a otro en mi red local o en Internet. Con RSYNC podr\u00edamos hacer cosas simples como sacar respaldos incrementales a un disco duro externo, a otra m\u00e1quina en la red. Tambi\u00e9n nos sirve para sincronizar directorios a trav\u00e9s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[70,1,3],"tags":[178,88,83,84],"class_list":["post-417","post","type-post","status-publish","format-standard","hentry","category-comos","category-general","category-software-libre","tag-comos","tag-rsync","tag-ssh","tag-tips"],"_links":{"self":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/comments?post=417"}],"version-history":[{"count":2,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/417\/revisions"}],"predecessor-version":[{"id":420,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/417\/revisions\/420"}],"wp:attachment":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/media?parent=417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/categories?post=417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/tags?post=417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}