{"id":2075,"date":"2018-04-28T20:40:06","date_gmt":"2018-04-28T20:40:06","guid":{"rendered":"http:\/\/blog.rastersoft.com\/?p=2075"},"modified":"2018-04-28T20:44:37","modified_gmt":"2018-04-28T20:44:37","slug":"cronopete-4","status":"publish","type":"post","link":"https:\/\/blog.rastersoft.com\/?p=2075","title":{"rendered":"Cronopete 4"},"content":{"rendered":"<p>Acabo de lanzar una <a href=\"http:\/\/www.rastersoft.com\/programas\/cronopete_es.html\">nueva versi\u00f3n de Cronopete<\/a>, la 4.0. Se trata de una versi\u00f3n con muchos cambios internos, aunque externamente puede parecer muy similar.<\/p>\n<p>El primer gran cambio es que ahora tiene un sistema de backends para hacer los backups. Esto era algo que estaba medio hecho desde la primera versi\u00f3n, pero el problema es que, sencillamente, estaba mal hecho: los backends de las versiones viejas s\u00f3lo daban acceso a un disco, mientras que la l\u00f3gica de las copias de seguridad estaba por encima. Esto limitaba mucho, porque exig\u00eda que donde se hiciesen los backups soportase enlaces a archivo y otras cosas. El nuevo sistema de backend, en cambio, asume completamente TODO el proceso de copia de seguridad; b\u00e1sicamente, cronopete le dice al backend: \u00abquiero que me copies estas carpetas\u00bb, o \u00abdame la lista de backups que tienes\u00bb, o \u00bb recupera este fichero desde este backup\u00bb. Pero no le interesa COMO est\u00e1 hecho el backup. Eso es tarea de cada backend.<\/p>\n<p>Por supuesto es fundamental conservar el sistema viejo de copias de seguridad, por lo que el primer backend funcional que tiene hace copias exactamente igual que el sistema anterior, pero con una diferencia: ahora utiliza la utilidad <a href=\"https:\/\/en.wikipedia.org\/wiki\/Rsync\">RSYNC<\/a> en lugar de c\u00f3digo propio, lo que ha permitido eliminar de un plumazo un bug misterioso que hac\u00eda que, muy de vez en cuando, <a href=\"https:\/\/github.com\/rastersoft\/cronopete\/issues\/27\">apareciesen carpetas con nombres raros<\/a> en la carpeta personal. Por supuesto, se aprovecha de que RSYNC permite hacer copias de seguridad con la misma estructura que las viejas versiones de cronopete (los ficheros que no han cambiado son enlaces duros al mismo fichero de la copia anterior, lo que permite ahorrar much\u00edsimo espacio).<\/p>\n<p>Con el nuevo sistema, implementar un backend para hacer copias en remoto deber\u00eda ser relativamente trivial, aunque el problema es cuando tendr\u00e9 tiempo de ponerme en serio con ello (a fin de cuentas, es algo que quiero probar bien antes de lanzar).<\/p>\n<p>Otra novedad, esta vez m\u00e1s sencilla, es que por fin permite que varios usuarios compartan un mismo disco de copias. Por un fallo tonto, las versiones anteriores pon\u00edan la carpeta <em>cronopete<\/em>, en el disco de destino, con permisos de escritura s\u00f3lo para el usuario que hab\u00eda formateado el disco. Eso significaba que dicho usuario pod\u00eda hacer copias sin problema, pero en cuanto otro usuario intentase usar el mismo disco para hacer sus copias, fallar\u00eda y le propondr\u00eda formatearlo. Ahora la carpeta <em>cronopete<\/em> tiene permisos de escritura para todo el mundo, y dentro, igual que antes, hay una carpeta por usuario, en la que s\u00f3lo dicho usuario tiene permisos de lectura, escritura y atravesado (por motivos obvios: otros usuarios no deber\u00edan tener acceso a mis copias de seguridad, pues son MIS datos).<\/p>\n<p>Otro cambio es que ahora borra las copias nuevas <em>despu\u00e9s<\/em> de hacer la copia de seguridad, lo que permite garantizar que si enciendes el equipo s\u00f3lo un momento, se haga al menos una copia r\u00e1pidamente. Adem\u00e1s, el borrado de copias viejas se hace de manera m\u00e1s segura: antes se borraba directamente el directorio, lo que pod\u00eda suponer un problema si se apagaba el ordenador o si cronopete fallaba en mitad del borrado, pues una copia quedar\u00eda \u00aba medias\u00bb. Ahora, sin embargo, primero se renombran las copias a borrar a\u00f1adiendo una letra justo antes, de manera que las copias que no se deben tener en cuenta est\u00e1n debidamente etiquetadas; luego se sincroniza el disco, y finalmente se procede a borrar las carpetas as\u00ed marcadas. Esto tiene otra ventaja, y es que una copia de seguridad no v\u00e1lida nunca aparecer\u00e1 en la interfaz de restauraci\u00f3n de ficheros.<\/p>\n<p>Por \u00faltimo hay varios cambios est\u00e9ticos y menores, sobre todo en la interfaz de restauraci\u00f3n de ficheros. Ahora, por ejemplo, la linea de tiempos muestra la fecha correspondiente, lo que da una idea m\u00e1s precisa de <em>por donde andamos<\/em> y <em>hasta donde podemos llegar <\/em>que antes.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/blog.rastersoft.com\/wp-content\/uploads\/2018\/04\/cronopete_big.png\" rel=\"lightbox-0\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2076\" src=\"https:\/\/blog.rastersoft.com\/wp-content\/uploads\/2018\/04\/cronopete_big-300x169.png\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/blog.rastersoft.com\/wp-content\/uploads\/2018\/04\/cronopete_big-300x169.png 300w, https:\/\/blog.rastersoft.com\/wp-content\/uploads\/2018\/04\/cronopete_big-768x432.png 768w, https:\/\/blog.rastersoft.com\/wp-content\/uploads\/2018\/04\/cronopete_big-1024x576.png 1024w, https:\/\/blog.rastersoft.com\/wp-content\/uploads\/2018\/04\/cronopete_big.png 1920w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Tambi\u00e9n se puede ahora filtrar por tipo de archivo, y, adem\u00e1s, cronopete recordar\u00e1 entre ejecuciones si se quer\u00eda ver en modo <em>iconos<\/em> o en modo <em>lista de archivos<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Acabo de lanzar una nueva versi\u00f3n de Cronopete, la 4.0. Se trata de una versi\u00f3n con muchos cambios internos, aunque externamente puede parecer muy similar. El primer gran cambio es que ahora tiene un sistema de backends para hacer los backups. Esto era algo que estaba medio hecho desde la primera versi\u00f3n, pero el problema &hellip; <a href=\"https:\/\/blog.rastersoft.com\/?p=2075\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Cronopete 4<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-2075","post","type-post","status-publish","format-standard","hentry","category-nueva-version"],"_links":{"self":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/2075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2075"}],"version-history":[{"count":5,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/2075\/revisions"}],"predecessor-version":[{"id":2081,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/2075\/revisions\/2081"}],"wp:attachment":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}