blog.bartlweb - a technologist's external brain

Thema: Software

PostScript-Drucker funktioniert nach dem Update auf MacOSX 10.6.7 nicht mehr

Diese Woche musste ich leider schmerzlich feststellen, dass nach dem Update auf Mac OS X 10.6.7 Ausdrucke über PostScript nur mehr eingeschränkt möglich sind.

Dabei druckt der Drucker anstelle des Dokuments folgende Fehlermeldung.

ERROR: invalidfont
OFFENDING COMMAND: definefont
 
STACK:
/Font
-dictionary-
/PCNCYD+CamingoDosPro-Bold

Im Moment gibt es leider keinen Workaround für das Problem und somit kann man nur auf das nächste Update hoffen.

Eckpunkte zur Problematik

  • tritt meist bei eigenen Schriften auf (in meinem Fall OpenType - wobei nicht alle Schnitte betroffen sind)
  • Systemschriften scheinen problemlos zu funktionieren
  • tritt in jedem Fall in Verbindung mit iWork sowie der Vorschau auf

Updates unter MacOSX via Konsole installieren

Gerade bei der Remote-Administration von MacOSX-Geräten über SSH erweist es sich als äußerst hilfreich, wenn sich Updates via Kommandozeile installieren lassen.

verfügbare Updates anzeigen

sudo softwareupdate -l

Updates installieren

alle neuen Updates installieren

sudo softwareupdate -i -a

nur empfohlene Updates installieren

sudo softwareupdate -i -r

Notauswurf für CD/DVD über die Konsole unter MacOSX

Alle neuen Macs haben gemeinsam, dass Ihnen der Notauswurfknopf am CD/DVD-Laufwerk fehlt. Wird eine CD/DVD von MacOSX nicht richtig erkannt so erscheint diese weder am Desktop, noch im Finder oder im Festplattendienstprogramm. Dies hat zur Folge, dass der Auswurf der CD sich mehr als kompliziert erweist, da in diesem Fall die Auswurftaste meist auch nicht funktioniert. Neben der Möglichkeit beim Booten des Macs die linke Maustaste gedrückt zu halten um die CD/DVD auszuwerfen gibt es einen sehr effektiven Konsolenbefehl. Geben Sie also zum Auswerfen der CD/DVD den folgenden Befehl in ihr Terminal ein.

drutil eject

Session-Timeout von phpMyAdmin erhöhen

Gerade bei aufwändigeren Entwicklungstätigkeiten ist es sehr mühsam sich alle 5 Minuten neu bei phpMyAdmin anmelden zu müssen, weil die Session abgelaufen ist. Abhilfe schafft eine Konfigurations-Option die der Datei config.inc.php hinzugefügt wird.

$cfg['LoginCookieValidity'] = 3600 * 8; // SessionTimeout auf 8 Stunden setzen

Pfad von ausführbaren Programmen ermitteln

Hin und wieder kommt es vor, dass Shell-Skripte die manuell ausgeführt werden einwandfrei funktionieren, während diese per Cronjob ausgeführt nur Fehler produzieren. Dies liegt oft daran, weil in per Cronjob ausgeführten Skripten die PATH-Variable nicht vorhanden ist. Abhilfe schafft die Angabe des Pfades vor dem jeweiligen Command-Befehls. Um einen Pfad zu einem Linux-Command-Befehl zu ermitteln nutzt man den Befehl which.

which <command>
which ping

Dieses Problem ist mir vor allem unter MacOSX aufgefallen (hier liegt der ping-Befehl z.B. unter /sbin/ping).

Die gesetzten Pfade für das ausführen von Programmen kann man sich übringens mit dem folgenden Befehl ausgeben lassen.

echo $PATH

RPM unter OpenSuse installieren

RPM-Dateien (.noarch.rpm) werden unter OpenSuse mit dem folgenden Befehl installiert:

rpm --install <dateiname>.noarch.rpm

Cronjobs – wiederkehrende Aufgaben unter Linux managen

Cronjobs sind unter Linux das Mittel der Wahl wenn es um automatisierte wiederkehrende Aufgaben geht. Unter Windows nennt sich diese Prinzip "Geplante Aufgaben".

Cronjobs verwalten

Cronjobs werden unter Linux immer für den aktuellen Benutzer verwaltet. Alle als Benutzer angelegte Cronjobs werden auch mit dessen Nutzerrechten ausgeführt.

Der folgende Befehl listet alle für den aktuellen Benutzer angelegten Cronjobs auf:

crontab -l

Um Cronjobs zu verwalten, hilft der folgende Befehl. Dieser öffnet die Konfigurationsdatei im Texteditor vi.

Erreichbarkeit von Servern mittels Perl-Skript überwachen

Das folgende Perl-Skript überwacht die Erreichbarkeit von Servern mittels ping oder SSH-Login. Im Fehlerfall wird ein Administrator über die nicht Erreichbarkeit per E-Mail informiert. Um die Überprüfung per SSH zu ermöglichen, muss der Login auf dem Entfernten Server mittels Public-Key, d.h ohne Passwort möglich sein.

Perl-Skript für die Überwachung des freien Fesplattenspeicherplatzes

Das folgende Perl-Skript überwacht unter Linux den freien Speicherplatz der verbauten Festplatten (bzw. gemounteten Partitionen). Dabei lässt sich das Benachrichtigungs-E-Mail und der Schwellenwert für den freien Speicherplatz konfigurieren.

#!/usr/bin/perl
 
#
# settings
#
 
$threshold = 90;
$excludeRegex = "^\/dev\/disk2";
 
$mailfrom = "server\@domain.com";
$mailto = "admin\@domain.com";
$subject = "Server: Low Disk Space!";
 
#
# script
#
 
use FileHandle;
 
@check=`df -h`;
 
@warn = grep { m/(\d+\%)/ and $1 >= $threshold } @check;
 
$counter = 0;
$content = "";
foreach (@warn) {
   if($excludeRegex ne "") {
      if($_ !~ m/$excludeRegex/) {
         $content = $content . $_ . "\n";
         $counter++;
      }
   } else {
      $content = $content . $_ . "\n";
      $counter++;
   }
}
 
if($counter != 0){
   $mail = new FileHandle;
   $mail->open("| /usr/sbin/sendmail -t") || die "Cannot open: $!";
 
   $mail->print("From: $mailfrom\n");
   $mail->print("To: $mailto\n");
   $mail->print("Subject: $subject\n\n");
   $mail->print($content);
 
   $mail->close();
}

Perl-Skript für überwachte Backups mit Hilfe von rsync

Das folgende Perl-Skript holt sich Verzeichnisse via rsync über SSH von einen entfernten Linux-Rechner und sichert diese lokal. Konfigurieren lässt sich dabei der Remote-Host und die zu sichernden Verzeichnisse sowie die Benachrichtigung via E-Maill. Das Skript lässt sich per Cronjob aufrufen und sendet nur im Falle eines Fehlers ein E-Mail.