Update list of crawlers
[infodrom.org/www.zeitungsliste.de] / bin / zeitungen-checkrobots
1 #! /usr/bin/php
2 <?php
3
4 include_once('/org/zeitungsliste.de/lib/core.inc');
5 include_once('/org/zeitungsliste.de/lib/extern/apache-log-parser.php');
6
7 $log = '/var/log/apache2/www.zeitungsliste.de/combined.log.0';
8
9 $notfound = array();
10
11 $logparser = new apache_log_parser();
12 if ($logparser->open_log_file($log)) {
13   while ($line = $logparser->get_line()) {
14
15     if (strpos($line, "GET /robots.txt HTTP/") !== false) {
16       $parts = $logparser->format_line($line);
17
18       $_SERVER['HTTP_USER_AGENT'] = $parts['agent'];
19
20       if (!is_spider())
21         $notfound[] = $parts['agent'];
22     }
23   }
24   $logparser->close_log_file();
25 } else {
26   echo "Cannot open $log\n";
27   exit(1);
28 }
29
30 if (count($notfound)) {
31   $header[] = 'From: Zeitungsliste <master@zeitungsliste.de>';
32   $header[] = 'To: Joey Schulze <joey@infodrom.org>';
33   $header[] = 'MIME-Version: 1.0';
34   $header[] = 'Content-type: text/plain; charset=utf-8';
35   $header[] = 'Content-Disposition: inline';
36   $header[] = 'Content-Transfer-Encoding: 8bit';
37
38   $to = 'joey@infodrom.org';
39   $subject = 'Spider nicht erkannt';
40   $body = "Die folgenden Spider wurden nicht anhand ihres UserAgent-Kennung\n".
41     "erkannt:\n\n";
42
43   foreach ($notfound as $agent)
44     $body .= "  " . $agent . "\n";
45
46   mail ($to, $subject, $body, implode("\n", $header));
47 }
48
49 ?>