{"id":3121,"date":"2019-11-19T11:43:55","date_gmt":"2019-11-19T10:43:55","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=3121"},"modified":"2019-11-19T11:43:56","modified_gmt":"2019-11-19T10:43:56","slug":"rotando-archivos-de-registros","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2019\/11\/19\/rotando-archivos-de-registros\/","title":{"rendered":"Rotando archivos de registros"},"content":{"rendered":"\n<p>El cuento de no acabar. Especialmente si son dos los que meten mano. Aviso ya que la entrada es un desahogo y seguramente muy sosa por los tecnicismos. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Recibo un correo como administrador que se queja de lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/cron.daily\/logrotate:\nerror: odoo:19 unknown group 'odoo-test'\nerror: found error in \/var\/log\/odoo\/odoo-server-test.log , skipping\nerror: odoo:28 unknown group 'odoo-beta'\nerror: found error in \/var\/log\/odoo\/odoo-server-beta.log , skipping<\/code><\/pre>\n\n\n\n<p>Y le echo un vistazo al directorio de registros porque no acabo de verlo claro. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rw-r--r--  1 odoo odoo      846 nov 15 15:29 odoo-server.log.2019-11-14\n-rw-r--r--  1 odoo odoo      745 nov 15 15:29 odoo-server.log.2019-11-13\n-rw-r--r--  1 odoo odoo    16807 nov 18 18:21 odoo-server.log.2019-11-16\n-rw-r--r--  1 odoo odoo   467837 nov 18 18:23 odoo-server.log.2019-11-15\ndrwxrwxrwx  2 odoo odoo     4096 nov 18 20:51 .\n-rwxrwxrwx  1 root root      330 nov 19 03:18 odoo-backup.log\ndrwxrwxr-x 16 root syslog   4096 nov 19 06:25 ..\n-rw-r--r--  1 odoo odoo     6320 nov 19 10:51 odoo-server.log\n-rw-r--r--  1 odoo odoo     9910 nov 19 11:20 odoo-server.log.2019-11-17<\/code><\/pre>\n\n\n\n<p>Y compruebo que no existen archivos llamados <em>odoo-server-test.log<\/em> ni <em>odoo-server-beta.log.<\/em> Pues vale. \u00bf Por qu\u00e9 hace referencia a ello ? <\/p>\n\n\n\n<p>Le echo otro vistazo al archivo que define las rotaciones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/odoo\/odoo-server-test.log {\n        daily\n        rotate 4\n        compress\n        size 100M\n        missingok\n        create 0640 odoo-test odoo-test\n}<\/code><\/pre>\n\n\n\n<p>Y veo que hace referencia a esos archivos pero de lo \u00fanico que no se queja es de su no existencia. Normal, ya que es posible que se d\u00e9 tal condici\u00f3n en estos contenidos. <\/p>\n\n\n\n<p>Como me he dado cuenta de que el otro administrador ha creado odoo-backup.log con permisos diferentes pues intento respetarlo con lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/odoo\/odoo-backup.log {\n        monthly\n        rotate 3\n        compress \n        size 10M\n        missingok\n        create 0640 root root\n}\n\n\/var\/log\/odoo\/*.log {\n        daily\n        rotate 4\n        compress\n        size 100M\n        missingok\n        create 0640 odoo odoo \n}<\/code><\/pre>\n\n\n\n<p>Pensando en que ir\u00e1 de lo m\u00e1s espec\u00edfico a lo m\u00e1s gen\u00e9rico, \u00bf verdad ? Pues no, un testeo me suelta lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@erp:\/etc\/logrotate.d# logrotate -d .\/odoo \nreading config file .\/odoo\nerror: .\/odoo:13 duplicate log entry for \/var\/log\/odoo\/odoo-backup.log\n\nHandling 2 logs\n\nrotating pattern: \/var\/log\/odoo\/odoo-backup.log  10485760 bytes (3 rotations)\nempty log files are rotated, old logs are removed\nconsidering log \/var\/log\/odoo\/odoo-backup.log\nerror: skipping \"\/var\/log\/odoo\/odoo-backup.log\" because parent directory has insecure permissions (It's world writable or writable by group which is not \"root\") Set \"su\" directive in config file to tell logrotate which user\/group should be used for rotation.\n\nrotating pattern: \/var\/log\/odoo\/*.log  104857600 bytes (4 rotations)\nempty log files are rotated, old logs are removed\nNo logs found. Rotation not needed.<\/code><\/pre>\n\n\n\n<p>No est\u00e1s ayudando.  Te das cuenta, \u00bf verdad ? <\/p>\n\n\n\n<p>Luego he descubierto que el archivo de registro lo crea un script para hacer copias por parte del otro administrador (encargado por el jefe, que ha perdido parte de su confianza en m\u00ed) y que los errores se pueden solucionar de la siguiente forma:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Cambiando la propiedad y los permisos de <em>\/var\/log\/odoo <\/em>a usuario y grupo <em>root<\/em> y permisos 0755<em>. <\/em><\/li><li>Concretando m\u00e1s la declaraci\u00f3n de archivos a rotar y dejando s\u00f3lo los dos, el que crea el programa <em>odoo<\/em> y el que crea el script de copia. <\/li><li>Asegur\u00e1ndome de que la rotaci\u00f3n crea archivos de registro con la propiedad adecuada para que los scripts puedan trabajar sobre ellos (usuario y grupo <em>odoo<\/em>). <\/li><\/ol>\n\n\n\n<p>Por lo que el archivo quedar\u00eda as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/odoo\/odoo-backup.log {\n        monthly\n        rotate 3\n        compress \n        size 10M\n        missingok\n        create 0640 odoo odoo \n}\n\n\/var\/log\/odoo\/odoo-server*.log {\n        daily\n        rotate 4\n        compress\n        size 100M\n        missingok\n        create 0640 odoo odoo \n}<\/code><\/pre>\n\n\n\n<p>Y la comprobaci\u00f3n se resume ahora a explicar si debe o no rotarlos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@erp:\/etc\/logrotate.d# logrotate -d .\/odoo \nreading config file .\/odoo\n\nHandling 2 logs\n\nrotating pattern: \/var\/log\/odoo\/odoo-backup.log  10485760 bytes (3 rotations)\nempty log files are rotated, old logs are removed\nconsidering log \/var\/log\/odoo\/odoo-backup.log\n  log does not need rotating\n\nrotating pattern: \/var\/log\/odoo\/odoo-server*.log  104857600 bytes (4 rotations)\nempty log files are rotated, old logs are removed\nconsidering log \/var\/log\/odoo\/odoo-server.log\n  log does not need rotating\n<\/code><\/pre>\n\n\n\n<p>Y, bueno, todos felices hasta la pr\u00f3xima en que volvamos a chocar. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>El cuento de no acabar. Especialmente si son dos los que meten mano. Aviso ya que la entrada es un desahogo y seguramente muy sosa por los tecnicismos.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[18,41,146,52],"class_list":["post-3121","post","type-post","status-publish","format-standard","hentry","category-software","tag-administracion-de-sistemas","tag-debian","tag-logrotate","tag-mi-lugar-de-trabajo"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=3121"}],"version-history":[{"count":2,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3121\/revisions"}],"predecessor-version":[{"id":3123,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3121\/revisions\/3123"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=3121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=3121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=3121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}