Archiv für Februar 2009

Abgeheftet in: Server | Tags: , , | 17:02 Uhr | 0

Logwatch, die automatische Logauswertung

27
Februar

Seit 2003 habe ich meinen eigenen Server. Dazu kam noch der Webserver meines Cousins auf dem sein Motorrad-Zubehör-Shop läuft, sowie ein kleiner VServer. Und eines vernachlässige ich seit 2003 vehement — die tägliche Logfile-Auswertung.

Wenn Fehler auftreten schaue ich schon mal rein um den Fehler zu finden, aber die tägliche Auswertung fand ich bisher ziemlich nervig. Überflüssig sicherlich nicht, aber wenn man jeden Tag immer die gleichen Meldungen sieht, die mir mitteilen, dass ein Programm korrekt lief, dann hat man nach zwei Tagen die Lust verloren. So ist mir über die Jahre sicherlich einiges durchgerutscht oder erst sehr viel später aufgefallen, was ich viel früher hätte stoppen können.

Damit ist nun Schluss, den ich habe Logwatch entdeckt. Logwatch ist ein Perl-Skript, dass die Logfiles automatisch auswertet und dem Admin eine Zusammenfassung der wichtigsten Ereignisse des Servers einmal täglich per eMail zuschickt. Und wenn bestimmte Programme nicht von Haus aus unterstützt werden, kann man Logwatch einfach erweitern. Die Programmiersprache hierfür ist egal.

Heute waren es zu Hause –8°C. Ich musste am Auto Eis kratzen … auch IM Auto. Super!

18.02.09 09:57 Uhr 6 Kommentare
Abgeheftet in: Mac | Tags: , , | 21:02 Uhr | 4

Admin Rechte unter OS X Leopard bekommen

15
Februar

Im Hackszine den Tipp gelesen, wie man unter OS X Leopard einem Benutzer Adminrechte zuteilen kann, wenn das Admin-Passwort mal nicht zur Hand ist.

Als erstes bootet man das System in den Single User Mode. Hierfür hält man Command-S beim hochfahren gedrückt, bis man im Singe User Mode ist. Dann mountet man die Festplatten in den read-write Modus mit den folgenden zwei Kommandos:

/sbin/fsck –fy
/sbin/mount –uw /

Mit dem dscl Kommando fügt man seinen Benutzernamen der Admin Gruppe hinzu. Aber zuerst muss man den Directory Service mit folgendem Kommando starten:

launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist

Um die bereits bestehenden Benutzer in der Admin-Gruppe aufzulisten benutzt man das Kommando:

dscl . read groups/admin users

Um Schlussendlich den eigenen Benutzernamen der Admin-Gruppe hinzuzufügen, nutzt man diesen Befehl, wobei „yourusername“ durch den eigenen Benuternamen zu ersetzen ist:

dscl . append groups/admin users yourusername

Nach dem ganzen Prozedere gibt man noch reboot ein um das System neu zu starten.

Abgeheftet in: Website | Tags: , | 21:02 Uhr | 0

Smarte Archiv Seite

9
Februar

Als ich im Januar 2008 von dem Blog-System Sunlog auf WordPress umstieg, gefiel mir die Archive-Seite, die WordPress mitlieferte, überhaupt nicht. Mit dem Plugin Smart Archive von Justin Blaton kam ich aber ungefähr zu dem zurück, was ich vorher hatte.

Was mir aber nie wirklich passte war, dass bei jedem Aufruf der Archiv-Seite weit über 600 Datenbankabfragen gemacht wurden. 50 Datenbankabfragen (auch Queries genannt) durch die sehr ineffektive Programmierung des Plugin. Alle weiteren kommen durch einen zwingenden Aufruf der WordPress-Funktion get_permalink().

Mir fiel keine andere Lösung ein, als das alles zu cachen. Darum habe ich auch mir auch etwas zusammenprogammiert, was jeder gerne auch nutzen kann, dem es gefällt. Mir ist erst im nachhinein aufgefallen, dass die neue Version von Smart Archive auch Caching behinhaltet. Ich finde meine Version aber smarter ;-) . Smart Archive cached in einer eigenen Textdatei. Bei mir wird nach jedem erstellen eines neuen Artikels das Archiv neu erstellt und als Post direkt in WordPress gespeichert.

Als erstes muss folgender Code in die Datei function.php in eurem Template kopiert werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Archive Seite
function my_archive()
{
   // set locale
   setlocale(LC_ALL,‚de_DE.UTF-8′);
   
   global $wpdb;
    $now = gmdate(„Y-m-d H:i:s“,(time()+((get_settings(‚gmt_offset‘))*3600)));  // get the current GMT date

   $allPosts = $wpdb->get_results(
       SELECT ID AS id, post_title AS title, post_name AS name, UNIX_TIMESTAMP(post_date) AS date
       FROM $wpdb->posts
       WHERE post_type = ‚post‘
       AND post_status = ‚publish‘  
       ORDER BY post_date DESC“
);
   
   $lastdate = ;
   
   foreach ($allPosts as $post) {
   
      if($lastdate != date(‚Ym‘, $post->date) ) {
         if(!empty($lastdate)) $archive .= ;
         $archive .= ‚<h2><a href=„‚ . get_month_link(date(‚Y‘, $post->date), date(‚m‘, $post->date)) . ‘“>‘ . strftime(‘%B %Y‘, $post->date) . ‚</a></h2>‘;
         $archive .= ‚<ul style=„list-style: none;“>‘;
         
         $lastdate = date(‚Ym‘, $post->date);
      }
     
      $archive .= ‚<li><a href=„‚ . get_permalink($post->id) . ‘“>‘ . $post->title . ‚</a></li>‘;
     
   }
   $archive .= ‚</ul>‘;
   
   $my_post = array();
   $my_post[‚ID‘] = 171;
   $my_post[‚post_content‘] = $archive;

   // Update the post into the database
   wp_update_post( $my_post );

}
add_action(‚publish_post‘, ‚my_archive‘); // generate archives after a new post

In Zeile 41 muss die Zeile muss die ID (hier 171) durch die ID des Archiv-Posts ersetzt werden. Am einfachsten ist dies herauszufinden, wenn man im Admin-Menu die Archiv Seite editiert. In der Adress-Zeile findest man die ID hinter post= .

Nun muss das Archiv Template in der Datei archives.php angepasst werden. Hierfür wird alles um wp_get_archives() und wp_list_categories() durch folgendes ersetzt:

1
2
3
   <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
      <?php the_content(‘<p class=„serif“>Weiterlesen &raquo;‘); ?>
   <?php endwhile; endif; ?>

Damit das Archiv angelegt wird, muss einmal ein Beitrag geschrieben werden.

Sitze gerade in einer Oracle Schulung in Bremen. Zwei Lehrgangsteilnehmer haben als Arbeitsequipment ein MacBook Pro und ein iPhone. Beide arbeiten bei Micromata. Vernünftiger Laden, definitiv!

09.02.09 13:16 Uhr 2 Kommentare
Abgeheftet in: Apple | Tags: , , | 12:02 Uhr | 1

Demnächst: Apple Store in Hamburg

6
Februar

Wie Onkel Heise heute berichtet, gibt es bald einen Apple Store hier in der Hansestadt. Mich freut es und ich bin schon gespannt wo in Hamburg der Store eröffnet wird. Ich würde ja irgendwo auf oder um die Mönckebergstrasse tippen.

Jobs sind auch noch zu besetzen. Vom Filialleiter bis Kassierer ist noch alles zu haben.

Abgeheftet in: Computer | Tags: , , , | 08:02 Uhr | 7

UNIX lehren

5
Februar

Mein Arbeitgeber ist ja so einer, der lagert gern aus. Neudeutsch auch „Outsourcen“ genannt. Das ist ja im Moment total hip und so. Also kam er auf die Idee einen First-Level-Support in Russland aufzubauen, genauer St.-Petersburg. Die Anforderungen an die neuen Sklaven Mitarbeiter sind aus recht logisch. Die Jungs da drüben müssen irgendwie Ahnung von EDV haben und deutsch sprechen. Nur passt EDV und Deutsch im Ausland nicht gerade perfekt zusammen. Also entschloss man sich auf das Computer-EDV-Zeugs zu verzichten und stellte Germanistikstudentinnen ein. Jawoll! Studentinnen!

Also, ich freue mich. Ich hatte bisher wenige weibliche Kollegen. Und jetzt sitzen diese zwar mehrere tausend Kilometer von mir weg, aber es ist doch schön zu wissen, das sie da sind. Aber wenn die Mädels schon Germanistik studiert haben, dann kann man doch daraus schließen, dass ihr Interesse an den ganzen digitalen Kram doch eher sekundär ist und sie doch eher den First-Level-Support in Anspruch nehmen würden … so rein aus privater Sicht, oder? Aber genau diesen sollen sie leisten. Mit — so wie ich es verstand — wenig Vorwissen.

Dieses Vorwissen bekommen sie gerade beigebracht und saugen das Wissen auf wie ein nasser Schwamm. Nur von UNIX haben sie noch keine Ahnung. Und genau das soll sich ändern, indem sie einen UNIX-Grundkurs erhalten. Und von wem? Richtig! Von mir. Ich soll diesen halten.

Ich bin ja auch weniger der Sprachkünstler, im Gegensatz zu den russischen Mädels, sondern mehr so ein Computer-Fuzzi. Wissen darüber habe ich. Aber das Wissen vermitteln ist eine ganz andere Sache. Zumindest habe ich noch nie einen Kurs geleitet. Aber das ist ja wie mit dem Schwimmen. Irgendwann fängt man damit an (ja ja, es gibt auch anderer Vergleiche).

Aber hat dort draussen irgendwer schon UNIX-Grundwissen vermittelt und kann mir ein paar Folien dafür bereitstellen? Wäre super. Nur, damit ich schon einmwal weiß, wie ich die Sache angehen kann.

Hanging Monk
Beam me up!