Snippets: Postfix canonical mit regex; Samba alternatives disk free command

Vor einiger Zeit hatte ich Dokumentiert, wie man bei Postfix Absender umschreiben kann, es geht auch mit regex und dadurch generischer und einfacher:

  1. In die /etc/postfix/main.cf folgendes eintragen
    sender_canonical_maps = regexp:/etc/postfix/canonical.regexp
  2. /etc/postfix/canonical.regexp anlegen mit Eintraegen wie z. B.:
    /^(.*)@bastel.fritz.box$/               bastel-${1}@example.org
  3. Postfix neu starten:
    service postfix restart

Der zweite Punkt ist, dass man in Samba ein alternatives Kommando zur Berechnung des freien Speichers geben kann. Dieses ist seit 3.0.21 per Share moeglich. Die Ursache wofuer wir das brauchten ist zu kompliziert um es auf die schnelle zu notieren, deswegen nur fix:

  1. Fuer den gewuenschten Share die folgende neue Option konfigurieren
    dfree command = /usr/local/bin/samba-dfree
  2. Folgendes Skript unter /usr/local/bin/samba-dfree ablegen
    #!/bin/bash
     
    #df $1 | tail -1 | awk ´{print $(NF-4),$(NF-2)}´
    df /mnt/disk1/ |tail -1 | awk '{print $(NF-4),$(NF-2)}'
  3. Samba neu starten
    service smbd restart

 

Weil mein Arbeitskollege seinen Blog erst nach vermutlich 5 Jahren wiederbeleben moechte, notiere ich es jetzt hier mit Credits an Ihn, er hat beides rausgesucht.

Apache mod_alias, mod_rewrite und GET-Parameter

Das Umleiten von einer Seite auf eine andere ist mit mod_alias sehr einfach:

Redirect /mydestination http://example.net/

Das geht auch noch recht einfach mit Regex wenn man einzelne Bereiche woanders hinschreiben will. Um diese URL-Transformation zu machen:

  • http://foobar.net/mydestination/folder/page.php -> http://example.net/foobar/folder/stuff/page.php

den folgenden RedirectMatch verwenden:

RedirectMatch ^/mydestination/(.*)/(.*)$ http://example.net/foobar/$1/stuff/$2

Wenn man jedoch mit GET-Parametern rumhantieren will, muss man mod_rewrite anstatt mod_alias nehmen. Fuer die folgende URL-Transformation:

  • http://example.net/mydestination/getstuff?pagename=foo.bar -> http://exmpla.net/blafasel/foo.bar

kann man diese Regel nutzen:

RewriteEnginge On
RewriteCond %{REQUEST_URI}  ^/mydestination/getstuff$
RewriteCond %{QUERY_STRING} ^pagename=(.*)$
RewriteRule ^(.*)$ http://example.net/blafasel/%1? [R=302,L]