{"id":297,"date":"2009-06-28T14:57:22","date_gmt":"2009-06-28T17:57:22","guid":{"rendered":"http:\/\/stefano.salvatori.cl\/blog\/?p=297"},"modified":"2009-06-28T14:57:22","modified_gmt":"2009-06-28T17:57:22","slug":"mi-propio-logrotate","status":"publish","type":"post","link":"https:\/\/stefano.salvatori.cl\/blog\/2009\/06\/28\/mi-propio-logrotate\/","title":{"rendered":"Mi propio logrotate"},"content":{"rendered":"<p>Tengo la siguiente estructura para almacenar los logs de los sitios que tiene el servidor <strong>sitio.tld\/subdomino-&lt;access|error&gt;.log<\/strong>, necesitaba que cada uno los sitios tuviera su propio registro de estadisticas utilizando <a title=\"awstasts\" href=\"http:\/\/awstats.sourceforge.net\/\" target=\"_blank\">awstats<\/a>, el problema es que no super como hacer que cada vez que se ejecutara el rotatelog se actualizaran todas las estadisticas para cada uno de los dominios. Por lo que decid\u00c3\u00ad hacer mi pripio logrotate utilizando bash y cron, el script es el siguiente:<\/p>\n<p><code lang=\"bash\"><br \/>\n#! \/bin\/bash<\/p>\n<p>\/usr\/lib\/cgi-bin\/awstats.pl -config=awstats -update<\/p>\n<p>for i in $(ls \/var\/log\/apache2\/); do<\/p>\n<p>cd \/var\/log\/apache2\/<\/p>\n<p>if [ -d $i ]; then<\/p>\n<p>#ejecutar awstats<br \/>\ncd \/etc\/awstats\/<br \/>\nconfig=awstats.$i.conf<br \/>\nif [ -f $config ];then<br \/>\n\/usr\/lib\/cgi-bin\/awstats.pl -config=$i -update<br \/>\nfi<\/p>\n<p>#ejecutar el rotate<br \/>\ncd \/var\/log\/apache2\/$i<br \/>\nfor j in $(ls *.log); do<br \/>\nsavelog -m777 -q $j<\/p>\n<p>#reiniciar apache2<br \/>\nif [ -f \"`. \/etc\/apache2\/envvars ; echo ${APACHE_PID_FILE:-\/var\/run\/apache2.pid}`\" ]; then<br \/>\n\/etc\/init.d\/apache2 reload &gt; \/dev\/null<br \/>\nfi<br \/>\ndone<br \/>\nelse<br \/>\n#archivos sueltos<br \/>\nsavelog -m777 -q $i<br \/>\nif [ -f \"`. \/etc\/apache2\/envvars ; echo ${APACHE_PID_FILE:-\/var\/run\/apache2.pid}`\" ]; then<br \/>\n\/etc\/init.d\/apache2 reload &gt; \/dev\/null<br \/>\nfi<br \/>\nfi<\/p>\n<p>done<br \/>\n<\/code><\/p>\n<p>luego con un cron corro el script cada X dias<\/p>\n<p>El funcionamiento es el siguiente. Reviso el directorio \/var\/www buscando los directorios que existen ahi (recordemos que un directorio es un sitio.tld) luego compruebo que exista el archivo de configuracion para ese dominio, de ser as\u00c3\u00ad ejecuto el awstats y luego realizo el savelog y reinicio el apache para que cree el nuevo log.<\/p>\n<p>Soy un n00b en bash, se que el script se puede optimizar, espero sus mejoras :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tengo la siguiente estructura para almacenar los logs de los sitios que tiene el servidor sitio.tld\/subdomino-&lt;access|error&gt;.log, necesitaba que cada uno los sitios tuviera su propio registro de estadisticas utilizando awstats, el problema es que no super como hacer que cada vez que se ejecutara el rotatelog se actualizaran todas las estadisticas para cada uno de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"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":[12,33,41,26],"tags":[131,129,209,130],"class_list":["post-297","post","type-post","status-publish","format-standard","hentry","category-linux","category-programacion","category-sysadmin","category-tips","tag-awstats","tag-bash","tag-linux","tag-log"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p5Pxa3-4N","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/posts\/297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/comments?post=297"}],"version-history":[{"count":3,"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/posts\/297\/revisions"}],"predecessor-version":[{"id":300,"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/posts\/297\/revisions\/300"}],"wp:attachment":[{"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/media?parent=297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/categories?post=297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stefano.salvatori.cl\/blog\/wp-json\/wp\/v2\/tags?post=297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}