Russen Mail Sucks II

Ruhe im Postfach! Der Tipp von neulich hat nicht funktioniert, jetzt habe ich etwas weiter recherchiert und das Problem gefunden: es war der Zeilenumbruch! Drauf bin ich gekommen bin ich wie ich die Sache mit spamassassin --lint gecheckt habe. Außerdem habe ich eine dritte Regel dazu gebaut (Zeile 9-11), die den Mail-Text auch noch überprüft, jetzt ist Ruhe.

header CST_RUSSIANSPAM1 Subject:raw =~ /\=\?(koi8\-r|windows\-125[0125]|windows\-874|iso\-8859\-[28])\?/i
score CST_RUSSIANSPAM1 7.0
describe CST_RUSSIANSPAM1 Russian SPAM, trap Subject line for language set
header CST_RUSSIANSPAM2 From:raw =~/\=\?(koi8\-r|windows\-125[0125]|windows\-874|iso\-8859\-[28])\?/i
score CST_RUSSIANSPAM2 7.0
describe CST_RUSSIANSPAM2 Russian SPAM, trap From line for language set
body CST_RUSSIANSPAM3 /\=\?(koi8\-r|windows\-125[0125]|windows\-874|iso\-8859\-[28])\?/i
score CST_RUSSIANSPAM3 7.0
describe CST_RUSSIANSPAM3 Russian SPAM, trap Body for language set

Wie das alles funktioniert ist hier ganz gut beschrieben: http://wiki.apache.org/spamassassin/WritingRules. Ich habe den Tag über öfter in den Spam-Ordner geschaut als in das Postfach. Krasse Sache, scheint zu funktionieren.

Russen Mail Sucks

Im Moment gibt es wieder Sau viel russische Spam. Ich verstehe da nur Bahnhof und habe bei Spamassassin folgendes eingebaut:

ok_languages en de es

Das hilft, aber nicht 100 %ig – pro Tag kommen da noch ein oder zwei Mails durch und das regt mich auf! In dem Thread habe ich noch mehr gefunden, mal gespannt ob das reicht.

Ich habs wieder verbockt…

Ich wurde schwach und habe ein Update auf Ubuntu 11.10 gemacht. Das war keine gute Idee, weil dabei mein DAAP-Server gelöscht wurde. Alternativen gibt es keine brauchbaren. Jetzt spiele ich mit dem Gedanken den Server daheim mit Debian neu aufzusetzen und mir als Willkommensnachricht sowas wie „Du Depp installier dir bloß net wieder einfach was drauf. Die Kiste läuft!“ einzurichten.
Wenigstens ist die Begründung halbwegs cool: … (From Debian) ROM; no upstream since 2007; code is a mess; alternative available; …
[Update] Heute (17.09.2011) gab es ein Update und nun ist forked-daapd mit da.

DB Änderungen via Export/Import

Wenn man in einer SQL Datenbank was ändern will, dann geht das ja üblicherweise mit
UPDATE tabelle
SET spalte1 = "lala"
WHERE spalte2 = "wert1"
AND spalte = "wert2"

Wenn die Abhängigkeiten etwas komplizierter werden, oder gar reguläre Ausdrücke enthalten, dann ufert die Sache recht schnell aus. Einfacher ist es da, zumindest bei MySQL, einen DB-Dump zu machen, diesen dann mit einem Editor zu bearbeiten und dann wieder zu importieren. Wenn man den Export noch mit DROP TABLE usw. versieht, dann geht das recht einfach von der Hand. Die Reihenfolge ist grob diese hier:

mysqldump database -u USER -p tabellen > database.sql
vim databse.sql
mysql -p dbname -u USER -p < dumpfile.sql

Mit PHPMyAdmin geht das über eine Web-Oberfläche recht geschmeidig von der Hand. Aufpassen muss man aber wenn man den Export an einem Mac bearbeitet, hier muss man drauf achten dass die Codierung des Exports nicht geändert wird.

ID3 Tags mit Perl bearbeiten

Ich habe alte MP3s gefunden, größtenteils noch ohne ID3 Tags, solche MP3s sind Mist wenn man sie z.B. in iTunes importieren will. Mit dem Skript hier werden ID3 Tags auf Basis des Namens in die Datei geschrieben. Es wird erwartet dass die Datei folgenden Aufbau hat:

nn - Liedname.mp3

Also Liednummer plus “ – “ plus Liedname, wichtig ist das “ – “ zwischen Liednummer und -name. Damit man die MP3s alle in diese Form bekommt, leistet das Tool rename (ist standardmäßig bei Linux mit installiert) gute Dienste! Das Skript selbst verwendet wiederum das Tool id3v2:

#!/usr/bin/perl -w
$num_args = $#ARGV + 1;
if ($num_args <3 ) {
        print "\nUsage: setTags.pl Album Artist Directory [exec] \n";
        exit;
}else{
        $dir   =$ARGV[2];
        $artist=$ARGV[1];
        $album =$ARGV[0];
        $exec  =$ARGV[3]; unless ($exec eq "exec"){$exec="";}
}
# create a list of all *.mp3 files in directory
opendir(DIR, $dir) || die("Can't open $dir");
@files = grep(/\.mp3$/,readdir(DIR));
closedir(DIR);
# build or print id3v2 system call
foreach $file (@files) {
        $path="$dir$file";
        print "\n processing: $path";
        ($track, $titleMp3)=split(" - ",$file);
        ($title)=split(".mp3",$titleMp3);
        $systemcall_1= "/usr/bin/id3v2 -a \"$artist\" -t \"$title\" -A \"$album\" -T \"$track\" \"$path\"";
        $systemcall_2= "/usr/bin/id3v2 -l \"$path\"";
        if($exec eq "exec"){
                system($systemcall_1);
                system($systemcall_2);
        }else{
                print"\n # $systemcall_1";
        }
}
print "\n";

Wird dann so aufgerufen:

christian@lonestar:~/_in$ ./setTags.pl "Speak English or Die" "S.O.D." S.O.D/Speak\ English\ or\ Die/ exec

ssh -X

-X Enables X11 forwarding. This can also be specified on a per-host basis in a configuration file.

Eine Sache, die ich seit Jahren eigentlich viel zu wenig benutzt habe, ist ssh -X. ssh -X ist praktisch und funktioniert auch hervorragend zwischen Mac und Unix Kiste (incl. Zwischenablage). Das erinnert an die alten Zeiten!

IT Zeugs im Sommer geht nicht so gut

Meine Festplatte hat sich jetzt komplett verabschiedet, 1,5 TB einfach so offline. Jetzt habe ich mir gestern überlegt was zu tun ist und das ist grob nix. Die paar GB Musik und Bilder bekomme ich erst mal wo anders unter, von den 1,5 TB waren gut 700 GB leer und der Rest war mit Time Machine Backups belegt – Datenmengen-technisch bin ich noch nicht im 21. Jahrhundert angekommen.
Außerdem habe ich die Temperaturüberwachung abgeschlossen, ich habe die Temperatur jetzt gut 9 Monate durchgeführt und habe die Infos beisammen, die ich brauche wenn es an die Planung der Heizung geht.
Dadurch dass ich jetzt keine USB 2 Festplatte an den Rechner anschließen muss und die Temperaturüberwachung abgehakt ist, bin ich um einiges flexibler mit der Aufstellung und der Auswahl des Heim-Servers… und plötzlich reicht das alte 12″ Powerbook aus. OK, ich gebe es zu im Moment fehlt mir die Muse um da mehr Zeit als nötig zu investieren – aber von außen betrachtet ist die Kausalkette durchgängig und das ist das wichtigste.

Mein Freund monit

Mit monit ein Log-File auf Aktualität überwachen geht so:

check file logfile  with path /var/log/owfs.log
        start program = "/etc/init.d/owfsd start"
        stop program =  "/sbin/reboot"
        if timestamp > 6 minutes then restart

(einfach an die Datei /etc/monit/monitrc dranhängen)
Ich gebe zu dass ein Reboot eine etwas harte Methode ist, aber unheimlich zielführend… ein Watchdog im klassischem Sinn.