Leggendo i log ho scoperto...

| 5 Commenti | Nessun TrackBack

... che molti SPAM-bot che inviano commenti e trackback di SPAM si affidano alla libreria Jakarta.
Con qualche riga nell'.htaccess è possibile alleggerire notevolmente il carico della vostra installazione di MovableType, impedendo l'accesso ai crawler.

# Block some user agents from posting TBs and CMs
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(Jakarta\sCommons\-HttpClient) [NC] 
RewriteCond %{REQUEST_METHOD} ^POST$
RewriteRule (.*) - [F,L]

... il bot di BlogBabel continua a macinare post, con una frequenza di almeno 1 volta ogni 3 ore.

[weppos]$ grep 'blogbabel' access.log
212.35.215.114 - - [26/May/2008:02:28:12 -0700] "GET /blog/index.xml HTTP/1.1" 302 546 "-" "BlogBabel +http://it.blogbabel.com/" 
212.35.215.114 - - [26/May/2008:04:25:07 -0700] "GET /blog/index.xml HTTP/1.1" 302 546 "-" "BlogBabel +http://it.blogbabel.com/" 
212.35.215.114 - - [26/May/2008:06:28:52 -0700] "GET /blog/index.xml HTTP/1.1" 302 546 "-" "BlogBabel +http://it.blogbabel.com/" 
212.35.215.114 - - [26/May/2008:08:32:02 -0700] "GET /blog/index.xml HTTP/1.1" 302 546 "-" "BlogBabel +http://it.blogbabel.com/" 
212.35.215.114 - - [26/May/2008:12:28:26 -0700] "GET /blog/index.xml HTTP/1.1" 302 546 "-" "BlogBabel +http://it.blogbabel.com/"

... che mentre pensavo a questo post, in meno di due ore, l'idea numero 1 ha fermato 1399 commenti/trackback di SPAM.

[weppos]$ grep 'Jakarta Commons-HttpClient' -c access.log
1399

... che quando ho eseguito l'upgrade di MovableType, ho scordato di inserire un redirect 301 e quindi ho perso tutte le posizioni sui motori di ricerca acquisite grazie ai tag ed alle categorie!

82.146.52.98 - - [26/May/2008:11:59:39 -0700] "POST /mt/mt-search.cgi?tag=trackback&blog_id=1 HTTP/1.1" 404 589 "-" "-" 
209.85.238.12 - - [26/May/2008:12:05:30 -0700] "GET /mt/mt-search.cgi?tag=trenitalia HTTP/1.1" 404 587 "-" "Feedfetcher-Google; (+http://www.google.com/feedfetcher.html)" 
209.85.238.12 - - [26/May/2008:12:24:12 -0700] "GET /mt/mt-search.cgi?tag=chuck%20norris&Template=feed&IncludeBlogs=1 HTTP/1.1" 404 587 "-" "Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=988241075584828268)"

Meglio tardi che mai, ora c'è un bellissimo RedirectMatch.

# Old versions redirect
RedirectMatch 301 ^/mt/(.*) /mt4/$1

... la scorsa settimana è passato a trovarmi Robozilla. In totale, in un anno Robozilla ha controllato lo status del mio sito 3 volte. Dite che è un po' poco?

[weppos]$ zgrep 'Robozilla' access.log.*.gz
access.log.2007-08-11.gz:207.200.81.166 - - [11/Aug/2007:15:37:00 -0700] "GET /blog/ HTTP/1.0" 200 12292 "http://directory.mozilla.org" "Robozilla/1.0"
access.log.2007-12-13.gz:207.200.81.166 - - [13/Dec/2007:01:36:25 -0800] "GET /blog/ HTTP/1.0" 200 10733 "http://directory.mozilla.org" "Robozilla/1.0"
access.log.2008-05-14.gz:207.200.81.166 - - [14/May/2008:17:18:19 -0700] "GET /blog/ HTTP/1.0" 200 11559 "http://directory.mozilla.org" "Robozilla/1.0"

... in totale le righe di log accumulate in un anno per questo sito corrispondono a 7.229.578. Il giorno che ha generato più log è stato 2007-06-18.gz (40620), il giorno con meno log il 2007-12-25 (11400).

Volete scoprirlo anche voi? Create un file log_total_lines.rb e piazzateci dentro il seguente script Ruby

#!/usr/bin/env ruby -wKU  

log_pattern = ARGV.shift || (raise 'Missing search pattern')
log_files_with_nof_lines = %x(zgrep 'HTTP/' -c #{log_pattern}).split("\n")

puts "Found #{log_files_with_nof_lines.length} log files matching pattern #{log_pattern}:"

total = log_files_with_nof_lines.inject(0) do |sum, line|
  log_file, nof_lines = line.split(':')
  sum + nof_lines.to_i
end
puts "Total nof log lines: #{total}"

poi eseguitelo da shell

[weppos]$ ruby log_total_lines.rb "access.log.*.gz"
Found 365 log files matching pattern access.log.*.gz:
Total nof log lines: 7229578

Per conoscere invece i log con maggiore/minore righe create un file log_sort_lines.rb con il seguente script.

#!/usr/bin/env ruby -wKU

log_pattern = ARGV.shift || (raise 'Missing search pattern')
log_files_with_nof_lines = %x(zgrep 'HTTP/' -c #{log_pattern}).split("\n")

puts "Found #{log_files_with_nof_lines.length} log files matching pattern #{log_pattern}:"

log_files = log_files_with_nof_lines.collect do |line|
  log_file, nof_lines = line.split(':')
  [nof_lines.to_i, log_file]
end.sort { |a,b| a.first <=> b.first }

puts "Log with the lowest nof lines: #{log_files.first.inspect}"
puts "Log with the highest nof lines: #{log_files.last.inspect}"

ed eseguitelo

[weppos]$ ruby log_sort_lines.rb "access.log.*.gz"
Found 365 log files matching pattern access.log.*.gz:
Log with the lowest nof lines: [11400, "access.log.2007-12-25.gz"]
Log with the highest nof lines: [40620, "access.log.2007-06-18.gz"]

Quante cose che si scoprono dai log. E voi ogni tanto li leggete?

No TrackBacks

TrackBack URL: http://www.simonecarletti.com/mt4/mt-script-tb.cgi/756

5 Commenti

Che BlogBabel continuasse a macinare post me ne ero accorto anch'io. Se non sbaglio addirittura tramite le informazioni di FeedBurner.
Hanno chiuso la baracca, ma non penso abbiano voglia di azzerare tutto quel lavoro.
Chissà... magari si godono loro i risultati di quello spider, ridendo forse dei "meme da escludere"... ;-)
Ciao,
Emanuele

giusto giusto ieri, tanto per poter dire con una certa sicurezza al provider che era quasi un mese che bloccavano l'accesso a Googlebot :-(

per Blogbabel mi sembra naturale. poiché si basa sui feed e poiché i fed hanno gli item limitati, per non creare un buco di informazioni lo spider deve continuare a lavorare...

Thanks for spam! Messo il codice nel mio htaccess.

Caro Simone, sei una risorsa inesauribile. Ti chiamo al telefono per qualche spiegazione aggiuntiva. Sai che io tecnicamente sono un disastro.

Ciaoooo

@ Emanuele, Tambu

E' vero, ma "deve" continuare a lavorare se hai desiderio di "continuare" a tenerlo in vita. ;)

@ Francesco

Al suo servizio. :D

infatti torna a breve!

Scrivi un commento

Iscriviti al feed

Feed Non conosci i feed RSS? Hai paura che sia una fregatura? Questa breve presentazione fa al caso tuo... prenditi 5 minuti, è divertente! :)

Ultimi commenti

  • Tambu: infatti torna a breve! continua...
  • Simone Carletti: @ Emanuele, Tambu E' vero, ma "deve" continuare a lavorare continua...
  • fradefra: Thanks for spam! Messo il codice nel mio htaccess. Caro continua...
  • Tambu: giusto giusto ieri, tanto per poter dire con una certa continua...
  • Emanuele: Che BlogBabel continuasse a macinare post me ne ero accorto continua...
Powered by Movable Type 4.2-en