Reinier Carmona Lizana cogió un teclado y escribió: > método ese de q el jefe se entere por el mismo de los que entraron en sitios > prohibidos está genial.
Ese script es un traje a mi medida, habría que ver si a ti te sirve. De todas formas con crear el fichero debidamente, debería funcionar. Simplemente, toma los datos de /etc/squid/sonsera.conf y los compara con las trazas, devolviendo por stdout algo como eso: > From: lazaro <root@localhost> > To: Lic. Reinicer <juridi...@lex-sa.cu> > Subject: infractores del mes de mayo > > > Estimado Reinier: > La presente lista; es una recopilacion de lo mas relevante hallado en la > trazas del mes que culmina. > > "patente" el dia 26 a las 07:46:29 accedio al sitio m.facebook.com > "juridico1" el dia 18 a las 07:56:30 accedio al sitio mail.google.com > "patente5" el dia 14 a las 10:49:13 accedio al sitio www.cubisima.com > > En espera de su atencion... Como ya te dije, no es que sea agarrado por el mango. El jefe cita a la gente y le pregutna porque lo hizo. La gente les hace un cuento chino y el se lo cree o no. Por tanto, el script solo reportará la ultima violación del mes y de la manera mas concisa posible, ya que los jefe NO leen trazas. Por tanto, el resumen que sea lea con un solo golpe de vista, en segundos y sin hacer scroll. Eso debes colgarlo en el cron, que corra a fin de mes y: OJO: debes tener la rotacion de logs debidamente configurada en logrotate root@proxy:~# crontab -l|grep violadores 00 00 28 * * /usr/local/bin/violadores.rb|sendmail juridi...@lex-sa.cu El script te lo dejo abajo: OJO!!! presta atencion al wrap, hay lineas que son MUY largas... #!/usr/bin/env ruby # tomamos las trazas traza = File.read '/var/log/squid/access.log' # la lista negra sonsera = File.read('/etc/squid/sonsera.conf').lines # si viola 500 sitios, es mas eficiente si el reganho # le recae por el ultimo que violo, asi entonces seria # -expliqueme companhero porque usted tal dia y tal hora # estaba metido en el sitio tal # De otra forma seria "estas acabando companhero, aguanta" # y la indisiplina sigue. El jefe ve mejor una violación # terrrible, que mil infensivas # # Ademas, el jefe no lee tanto ni cosas que sena largas # violadores={} # mostraremos el host nada mas require 'uri' # por cada sonsera sonsera.each do |macheo| # prueba se mache una traza traza.lines.each do |traza| cuando=Time.at(traza.split('.')[0].to_i) # lo echamos pa alante if traza.split(' ')[6].include? macheo.gsub("\n",'') user=traza.split(' ')[7] begin url=URI(traza.split(' ')[6]).host rescue next end # tomamos el usuario violador y lo grabamos if (/[a-z]/ =~ user) == 0 and url violadores[user]=[url,cuando] end end end end # si no hubieron violaciones, ni te inmutes exit if violadores.length == 0 puts 'From: lazaro <root@localhost>' puts 'To: Lic. Reinicer <juridi...@lex-sa.cu>' puts 'Subject: infractores del mes de '+%w[octiembre enero febrero marzo abril mayo junio julio agosto septiempre octubre noviembre diciembre][Time.now.month.to_i] puts '' puts '' puts 'Estimado Reinier:' puts 'La presente lista; es una recopilacion de lo mas relevante hallado en la trazas del mes que culmina...' puts '' violadores.each do |quien,que| puts '"'+quien+'" el dia '+que[1].to_s.split(' ')[0].split('-')[-1]+' a las '+que[1].to_s.split(' ')[1]+' accedio al sitio '+que[0].to_s end puts '' puts 'En espera de su atencion...' -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio. ______________________________________________________________________ Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba. Gutl-l@jovenclub.cu https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l