{"id":852,"date":"2012-02-20T20:22:06","date_gmt":"2012-02-21T02:22:06","guid":{"rendered":"http:\/\/blografia.net\/vicm3\/?p=852"},"modified":"2012-02-20T20:27:39","modified_gmt":"2012-02-21T02:27:39","slug":"me-dolio-el-codo","status":"publish","type":"post","link":"https:\/\/blografia.net\/vicm3\/2012\/02\/me-dolio-el-codo\/","title":{"rendered":"Me doli\u00f3 el codo"},"content":{"rendered":"<p>Y bueno la semana pasada encontr\u00e9 con que unos colegas que contrataron a \u201calguien\u201d para hacer unas formas usaron una soluci\u00f3n de fuente abierta [1] la cual despu\u00e9s de platicar con ellos muy profesionalmente y que seguramente les llamaran para que nos compartieran el c\u00f3digo pues cuando quedaron de enviarlo no lo hicieron\u2026 en fin encontr\u00e9 muy \u00fatil el asunto y como venia ah\u00ed que si te funcionaba, pues pasaras algo por paypal, desde un centavo y como en las opciones venia enviar un caf\u00e9, fue lo m\u00ednimo que se me ocurri\u00f3 que val\u00eda el sacar a uno de un apuro en un bomberazo 2.95USD.<\/p>\n<p>Para otro proyecto, que m\u00e1s bien es personal estuve buscando una soluci\u00f3n para respaldo de WordPress en un host que no tiene acceso Shell, bueno el host no lo eleg\u00ed yo, pero si implemente el sitio y varias cosas, como son un tanto payasos, ya que en ocasi\u00f3n anterior usando la herramienta de Cpanel para backups \u2013\u00bfya mencione que yo no eleg\u00ed el host?- nuestro hosting nos borro el archivo que porque incumpl\u00eda los t\u00e9rminos de servicio y no era un archivo de valido para servir en web, total que fue un show y aunque busque alg\u00fan plugin de WP que satisficiera mis necesidades encontr\u00e9 tres, EZ Backup [2] que no me gusto, Complete Backup [3] que me ped\u00eda que me registrar\u00e1 con correo electr\u00f3nico, nombre y apellido y Vaultpress [4]. El primero se ve\u00eda promisorio, se puede respaldar theme, core ydb, pero para hacerlo automagico hay que pagarlo, el segundo promet\u00eda a\u00fan m\u00e1s pero para siquiera usarlo, hay que registrarlo \u201cgratis\u201d por cada dominio, cosa que ya no me gusto, seg\u00fan permite hacer backup y crear un api key para desde una ip lanzarlo, total que no poder ni probarlo sin registrarlo no me gusto, el ultimo provisto por Automattic.com es decir la parte corporativa de WordPress parece la mejor opci\u00f3n, autom\u00e1tico, offsite, con deltas, peque\u00f1o inconveniente 15USD al mes cuando estoy sacando por este proyecto el equivalente a 76USD al mes\u2026 y bueno si me doli\u00f3 el codo, pero sigo requiriendo una soluci\u00f3n para el respaldo.<\/p>\n<p>Recordando alguna vez un script que me ayudo Gunnar a hacer para conectar a una base de datos MySQL me cayo el veinte de que si en Perl no es complicado manipular una BD y lanzar alg\u00fan comando de sistema de ser necesario [5] pues en php no deb\u00eda serlo tampoco de hecho dando un par de b\u00fasquedas en google, encontr\u00e9 que tal cual no es complejo de hecho hasta encontr\u00e9 un buen ejemplo que casi hace todo lo que necesito [6]:<\/p>\n<pre>\r\n\/\/servidor MySql\r\n$C_SERVER='tu_servidor';\r\n\/\/base de datos\r\n$C_BASE_DATOS='tu_base_de_datos';\r\n\/\/usuario y contrase\u00f1a de la base de datos mysql\r\n$C_USUARIO='tu_usuario';\r\n$C_CONTRASENA='tu_contrase\u00f1a';\r\n\/\/ruta archivo de salida\r\n\/\/(el nombre lo componemos con Y_m_d_H_i_s para que sea diferente en cada backup)\r\n$C_RUTA_ARCHIVO = '\/ruta_hasta\/backups\/backup_'.date(\"Y_m_d_H_i_s\").'.sql';\r\n\/\/si vamos a comprimirlo, no queremos compresi\u00f3n para aprovechar los deltas.\r\n$C_COMPRIMIR_MYSQL='false';<\/code>\r\n\/\/comando\r\n$command = \"mysqldump --opt -h \".$C_SERVER.\" \".$C_BASE_DATOS.\" -u \".$C_USUARIO.\" -p\".$C_CONTRASENA.\" -r \\\"\".$C_RUTA_ARCHIVO.\"\\\" 2&>1\";\r\n\/\/ejecutamos\r\nsystem($command);\r\n\/\/comprimimos\r\nif ($C_COMPRIMIR_MYSQL == 'true') {\r\nsystem('bzip2 \"'.$C_RUTA_ARCHIVO.'\"');\r\n}\r\n<\/pre>\n<p>Viendo esto, pues se me ocurri\u00f3 que con system podr\u00eda pasar de una vez tar cvfz y hacerme tambi\u00e9n de un respaldo de los archivos, peque\u00f1o detalle, con las im\u00e1genes, videos, modificaciones, pdf y dem\u00e1s archivos el respaldo ya va por el giga y medio, entonces y pensando en el p\u00e9simo cron que provee php, se me ocurri\u00f3 hacer m\u00e1s dependiente de curl las cosas, por lo que en el host donde estoy haciendo el respaldo cree dos scripts en bash.<\/p>\n<p>Uno que hacer curl a este al script de respaldar sql, ese se mete al crontab para ejecutarse cada noche, al fin la base de datos no crece tanto, el otro hace curl tambi\u00e9n pero a un archivo que solo genera un tar de los archivos, excluy\u00e9ndose a s\u00ed mismo y despu\u00e9s lo descarga con wget, una vez hecho esto env\u00eda curl a otro script que usando unlink borra el archivo.<\/p>\n<pre>\r\n### Este crea el respaldo de sql se corre diario @daily\r\n#!\/bin\/bash\r\ncurl http:\/\/foo.bar\/respaldo\/backupsql.php<\/code>\r\n\r\n## por si las dudas esperamos a que termine, demos 10 min\r\nsleep 10m\r\n\r\nwget http:\/\/foo.bar\/respaldo\/backup_wp.sql\r\n\r\nexit 0\r\n\r\n### Este crea el respaldo del FS se corre una vez a la semana @weekly\r\n#!\/bin\/bash\r\ncurl http:\/\/foo.bar\/respaldo\/backupfs.php\r\n\r\n## por si las dudas esperamos a que termine, demos 120 min\r\nsleep 120m\r\n\r\nwget http:\/\/foo.bar.ficcm.org\/ficmm.tar\r\n\r\n# Este libera el espacio\r\ncurl http:\/\/foo.bar\/respaldo\/borratmp.php\r\n\r\nexit 0\r\n<\/pre>\n<p>Digamos que no es tan bonito como Vaultpress, ni est\u00e1 en la \u201cnube\u201d como Total Backup, pero se me hace vale los 15USD que voy a ahorrar y me funciona mejor por las pol\u00edticas del hosting que se tiene contratado, cosa que no podr\u00eda cumplir m\u00e1s que con Vaultpress y que prefiero amortizar respaldando en mi propio host, si al cliente le he comentado de lo importante de los respaldos y de contratar algo como rsync.net o Vaultpress, pero no parece ser prioritario, baste mencionar que la p\u00e1gina esta en un host de 1.95USD al mes.<\/p>\n<p>Y bueno me doli\u00f3 el codo pero resolv\u00ed mi problema aprend\u00ed un par de cosas de php y aunque se me ocurre que seguro si meto condicionales lo puedo meter todo en php y tener un solo bash que obtenga el los dos respaldos, pero as\u00ed me funciona y como a\u00f1adido lo que est\u00e1 en mi host lo respaldo con rsnapshot por lo que tengo deltas diarios, semanales y mensuales de hasta tres meses de antig\u00fcedad.<\/p>\n<p>[1] http:\/\/phpfmg.sourceforge.net\/<br \/>\n[2] http:\/\/wordpress.org\/extend\/plugins\/wordpress-ez-backup\/<br \/>\n[3] http:\/\/wordpress.org\/extend\/plugins\/wp-complete-backup\/<br \/>\n[4] http:\/\/vaultpress.com\/plans\/<br \/>\n[5] http:\/\/blografia.net\/vicm3\/2006\/03\/y_bueno_aunque_nadie_ha_preguntado\/<br \/>\n[6] http:\/\/blog-indomita.blogspot.com\/2008\/08\/realizar-backup-mysql-desde-php.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Y bueno la semana pasada encontr\u00e9 con que unos colegas que contrataron a \u201calguien\u201d para hacer unas formas usaron una soluci\u00f3n de fuente abierta [1] la cual despu\u00e9s de platicar con ellos muy profesionalmente y que seguramente les llamaran para &hellip; <a href=\"https:\/\/blografia.net\/vicm3\/2012\/02\/me-dolio-el-codo\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[10,8,6,7],"tags":[],"class_list":["post-852","post","type-post","status-publish","format-standard","hentry","category-planetalinux","category-sysadmin","category-trabajo","category-web"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":835,"url":"https:\/\/blografia.net\/vicm3\/2011\/11\/un-problema-comun-en-wp\/","url_meta":{"origin":852,"position":0},"title":"Un problema com\u00fan en WP","author":"vicm3","date":"15 noviembre, 2011","format":false,"excerpt":"Que acabo de descubrir varios scripts automatizados est\u00e1n aprovechando autosave.js que es una funci\u00f3n com\u00fan a las ultimas versiones de WP expone el path en el servidor donde alojamos nuestro blog, esto por si solo no es tan delicado, pero dice bastante de nuestro blog, para empezar que tema usamos\u2026","rel":"","context":"En \u00abDebraye\u00bb","block_context":{"text":"Debraye","link":"https:\/\/blografia.net\/vicm3\/category\/debraye\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":58,"url":"https:\/\/blografia.net\/vicm3\/2005\/02\/una_de_dell\/","url_meta":{"origin":852,"position":1},"title":"Una de Dell","author":"vicm3","date":"17 febrero, 2005","format":false,"excerpt":"Y bueno como buen necio aqui compilando kerneles a la medida... con broncas con un controlador SATA (Optiplex GX280)... si uso el netinstal de sarge en 2.4 nomas no ve el disco sata... si uso el 2.6 lo lee bien bonito... instalo, todo listo reinicio y se queda en buscando\u2026","rel":"","context":"En \u00abGeneral\u00bb","block_context":{"text":"General","link":"https:\/\/blografia.net\/vicm3\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":256,"url":"https:\/\/blografia.net\/vicm3\/2006\/03\/y_bueno_aunque_nadie_ha_preguntado\/","url_meta":{"origin":852,"position":2},"title":"Y bueno aunque nadie ha preguntado&#8230;","author":"vicm3","date":"25 marzo, 2006","format":false,"excerpt":"El otro dia le preguntaba a Gunnar si lo que me ayudo a hacer con mi DB de convertir de utf8 a latin1, se podria aplicar a texto, plano mas especificamente a un index.html, por cierto pongo el codigo como quedo por que me parece muy eficiente y bueno (y\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":614,"url":"https:\/\/blografia.net\/vicm3\/2008\/12\/hp-2133-aka-mini\/","url_meta":{"origin":852,"position":3},"title":"HP 2133 aka Mini","author":"vicm3","date":"29 diciembre, 2008","format":false,"excerpt":"Hace rato que no he escrito por aca, he estado leyendo en planeta linux que todo mundo anda tras la \"nueva\" hp mini, bueno dejenme les platico de primera mano un par de cosas. El dise~o es bastante bueno y que sea de aluminio gran parte de la carcasa es\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":709,"url":"https:\/\/blografia.net\/vicm3\/2010\/01\/ayer-en-un-rato-de-ocio\/","url_meta":{"origin":852,"position":4},"title":"Ayer en un rato de ocio","author":"vicm3","date":"20 enero, 2010","format":false,"excerpt":"Leyendo en el twitter Vi que salio la encuesta de un partido politico sobre la opinion que uno tiene sobre el futuro de los ni\u00f1os y la preferencia sexual de los padres http:\/\/www.pandf.org.mx\/quieroopinar\/ Ayer tambi\u00e9n me quede pensando, en todas las encuestas que maneja drupal, phpnuke, phpesp, etc. Es muy\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":182,"url":"https:\/\/blografia.net\/vicm3\/2005\/12\/un_dia_laargo\/","url_meta":{"origin":852,"position":5},"title":"Un dia laargo","author":"vicm3","date":"2 diciembre, 2005","format":false,"excerpt":"**\"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts\/852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/comments?post=852"}],"version-history":[{"count":0,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts\/852\/revisions"}],"wp:attachment":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/media?parent=852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/categories?post=852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/tags?post=852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}