{"id":2212,"date":"2022-01-22T23:34:53","date_gmt":"2022-01-23T04:34:53","guid":{"rendered":"https:\/\/creativapixel.com\/?p=2212"},"modified":"2022-09-29T03:05:49","modified_gmt":"2022-09-29T08:05:49","slug":"copias-de-seguridad-desde-centos-a-mega-con-rclone","status":"publish","type":"post","link":"https:\/\/creativapixel.com\/blog\/copias-de-seguridad-desde-centos-a-mega-con-rclone\/","title":{"rendered":"Copias de seguridad desde Centos a Mega con Rclone"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Saludos a todos los apasionados de las tecnolog\u00edas web. En esta ocasi\u00f3n les voy a compartir como hacer copias de seguridad desde un servidor Centos hacia una cuenta en Mega. Para eso explicaremos cada paso:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La tarea que se nos presento con un cliente fue hacer el respaldo de su sitio web completo y base de datos en mysql.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ruta donde esta la web se encuentra en el habitual \/var\/www\/html. En esta ruta crearemos una carpeta backup y dentro de esta carpeta crearemos un archivo backup.sh que contendr\u00e1 el c\u00f3digo para hacer el respaldo. A diferencia de otros post de backup de mysql, en esta oportunidad haremos un respaldo full de cada base de datos por separado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Creamos la carpeta backup y sus respectivos permisos<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># cd \/var\/www\/html\n# mkdir backup\n# chmod 777 -R backup<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Creamos el archivo backup.sh<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># touch backup.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ingresamos el c\u00f3digo para el respaldo de cada base de datos en mysql<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\nUSER=\"usuario-mysql\"\nPASSWORD=\"clave-mysql\"\n\nFECHA_ACTUAL=`date +%Y-%m-%d`\nHORA_ACTUAL=`date +%H:%M`\nARCH_RESP=$FECHA_ACTUAL-$HORA_ACTUAL\n\n\ndatabases=`mysql -u $USER -p$PASSWORD -e \"SHOW DATABASES;\" | tr -d \"| \" | grep -v Database`\n\nfor db in $databases; do\n    if &#91;&#91; \"$db\" != \"information_schema\" ]] &amp;&amp; &#91;&#91; \"$db\" != \"performance_schema\" ]] &amp;&amp; &#91;&#91; \"$db\" != _* ]] ; then\n       # echo \"Dumping database: $db\"\n        mysqldump -u $USER -p$PASSWORD --databases $db | gzip &gt; $db\"_\"$ARCH_RESP.sql.gz\n    fi\ndone\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora le damos permiso a archivo sh creado<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># chmod +x \/var\/www\/html\/backup\/backup.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hasta este paso ya tenemos el script que har\u00e1 los backups de mysql. Ahora pasamos a rclone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero nos creamos una cuenta en <a rel=\"noreferrer noopener\" href=\"https:\/\/mega.nz\" target=\"_blank\">https:\/\/mega.nz<\/a> y creamos una carpeta backup_sitio que sera la carpeta de destino.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instalamos rclone<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># yum install rclone<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez instalado lo configuramos<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># rclone config<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el sgte. men\u00fa seleccionamos New remote, presionando la tecla n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>No remotes found - make a new one\nn) New remote\ns) Set configuration password\nq) Quit config\nn\/s\/q&gt; <strong>n<\/strong><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Agregamos un nombre a nuestra unidad remota, en mi ejemplo \u00abremoto\u00bb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>name&gt; <strong>remoto<\/strong><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el sgte. men\u00fa le mostrar\u00e1 todos las unidades o servicios de almacenamiento, escriba mega<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Type of storage to configure.\nChoose a number from below, or type in your own value\n&#91;snip]\nXX \/ Mega\n   \\ \"mega\"\n&#91;snip]\nStorage&gt; <strong>mega<\/strong><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el sgte. men\u00fa ingrese su cuenta de correo de mega<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>User name\nuser&gt; <strong>tucorreomega@correo.com<\/strong><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el sgte. men\u00fa ingresamos seleccionamos la opci\u00f3n y) con la tecla \u00aby\u00bb y completamos nuestra clave mega<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Password.\ny) Yes type in my own password\ng) Generate random password\nn) No leave this optional password blank\ny\/g\/n&gt;<strong> y<\/strong>\nEnter the password:\npassword:\nConfirm the password:\npassword:\nRemote config\n--------------------\n&#91;remote]\ntype = mega\nuser = you@example.com\npass = *** ENCRYPTED ***\n--------------------\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el \u00faltimo men\u00fa confirmarmos con \u00aby\u00bb y salimos con la tecla \u00abq\u00bb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>y) Yes this is OK\ne) Edit this remote\nd) Delete this remote\ny\/e\/d&gt; y<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con esto hemos creado nuestro nombre \u00abremoto\u00bb de origen que lo conectaremos con la carpeta en mega \u00abbackup\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora procederemos a crear las tareas programadas que har\u00e1n el trabajo de ejecutar los backups y enviar a mega.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># crontab -e<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A\u00f1adimos 3 tareas, el primero ejecuta el archivo backup.sh cada 6 horas. El segundo elimina copias de mysql mayor a 7 dias a los 10 minutos sgtes. y el 3ero env\u00eda 10 mins. despu\u00e9s con rclone todo el contenido de la carpeta html a mega de manera incremental, solo los archivos creados desde el 01-07-2022 ignorando los ya existentes, creando carpetas vacias y excluyendo archivos de una carpeta especifica..<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 *\/6 * * * cd \/var\/www\/html\/backup &amp;&amp; sh backup.sh\n10 *\/6 * * * find \/var\/www\/html\/backup\/*.sql.gz -mtime +7 -exec rm {} \\;\n20 *\/6 * * * rclone sync \/var\/www\/html remoto:<strong>backup_sitio<\/strong> --max-age 2022-07-01 --ignore-existing --create-empty-src-dirs --exclude \"\/carpeta_con_contenido_a_excluir\/**\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con esto ya podemos ahora otra vez descansar tranquilos. Servidos!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saludos a todos los apasionados de las tecnolog\u00edas web. En esta ocasi\u00f3n les voy a compartir como hacer copias de seguridad desde un servidor Centos hacia una cuenta en Mega. &#8230;<\/p>\n","protected":false},"author":1,"featured_media":2218,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,48,61,38,60,18],"tags":[],"class_list":["post-2212","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-centos","category-mariadb","category-mega","category-mysql","category-rclone","category-servidores-gnulinux"],"_links":{"self":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts\/2212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/comments?post=2212"}],"version-history":[{"count":10,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts\/2212\/revisions"}],"predecessor-version":[{"id":2244,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts\/2212\/revisions\/2244"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/media\/2218"}],"wp:attachment":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/media?parent=2212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/categories?post=2212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/tags?post=2212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}