Schlagwort-Archive: PrismBreak

IMAP-Server syncen

In den letzten Wochen sind mir mehrmals Festplatten meiner „Server“ verreckt. Auf den Servern lief unter anderem mein Mailserver mit Dovecot. Nachts werden die Daten zwar immer gesichert, aber der letzte Crash fand genau zum Zeitpunkt des Backups statt. Daher konnte ich dieses Backup nicht nutzen. Zum Glück konnte ich auf die Festplatte noch per externem Festplattengehäuse zugreifen und den aktuellen Stand des Mailservers manuell sichern und in der neuen Installation wieder einspielen.

Aber wie kann man die Daten dann zeitnah sichern? Mir fiel ein, dass auf meinem Synology-NAS ein Mailserver aktiviert werden kann. Idee war nun, den Hauptmailserver mit dem Mailserver auf der Synology zeitnah zu syncen. Da auf der Synology auch noch ein Webmailer installiert werden kann, hätte ich so eine Notbehelfslösung beim nächsten Crash.

Ich hatte mir zuerst Offlineimap angeschaut. Leider zickt es mit selbstgenerierten Zertifikaten bei SSL Verbindungen. Dann Imapsync gefunden. Es kann komplett über die Kommandozeile gesteuert werden. Und, da ich meine Rechner mittlerweile alle unter Arch Linux laufen lasse, es findet sich ein passendes Installationspaket in AUR, dem Programmrepository welches von Nutzern gepflegt wird.

Nach der Installation von Imapsync habe ich mir ein Shell-Skript angelegt, welches den Aufruf von Imapsync kapselt. Da auf dem Mailserver nur mein Account liegt, ist es eine ganz simple Lösung.

Das Shellskript findet sich unter ~/imapsync_calibanatspace.sh und hat folgenden Inhalt:

#!/bin/bash
imapsync --host1 localhost --port1 993 --user1 benutzername1 --password1 geheimespasswort1 --ssl1 --host2 backupmailserver --port2 993 --user2 benutzername2 --password2 geheimespasswort2 --ssl2 --delete2

Das Shellskript wird per Cron regelmässig aufgerufen. Ich lasse den Syncvorgang testweise erstmal alle drei Stunden durchführen. Daher habe ich folgendes für meinen Benutzer in der Crontab eingetragen:

0 0,3,6,9,12,15,18,21 * * * ~/imapsync_calibanatspace.sh

 

#PrismBreak – Raspberry Pi Grundeinrichtung

Für mein PrismBreak Projekt hatte ich bisher verschiedene Rechner benutzt. Angefangen mit einem Raspberry Pi Modell A, dann ein Atom basierten PC zu einem Root-Server. Da ich die Daten und Dienste gerne wieder komplett unter meiner Kontrolle haben will, soll es jetzt wieder eine Lösung mit Raspberry Pi Rechnern werden. Dabei habe ich mir vorgenommen, jeden Dienst einzeln auf einem Raspberry laufen zu lassen. Also Owncloud, PostgreSQL-Datenbank und Mailserver jeweils auf einem eigenen Raspberry Pi. Fällt ein Raspberry aus sollte er einfach ersetzbar sein und nur der darauf installierte Dienst nicht erreichbar sein. Für den Start mit Owncloud und Mailserver sieht dies etwas nach overkill aus, ist aber gedacht als Grundlage für die Nutzung weiterer Dienste.

Als Linux war ich am Überlegen, ob es Raspian oder Arch werden sollte. Entschieden habe ich mich dann für Arch, da ich es bereits auf meinen Notebooks benutze und damit immer auf neuste Versionen von Software aktualisiert werde.

Einrichten Installationsmedium

Die Installation des Installationsimages auf eine SD-Karte gestaltet sich recht einfach. Die Anleitung findet sich hier.

Wichtig als Info: Benutzername und Passwort lauten „root„.

Die weiteren Tätigkeiten passieren auf der Kommandozeile. Entweder hat man an dem Raspberry eine Tastatur und Display angeschlossen, oder man verbindet sich per SSH. Für den Zugriff per SSH nimmt man unter Windows dazu Putty, unter Linux den normalen SSH Client. Für den Zugriff benötigt man die IP-Adresse, unter der der Raspberry im LAN erreichbar ist. Kann man die IP-Adresse über den Router, der die IP-Adressen im LAN bereitstellt und den Geräten zuweisst, ermitteln, kann man sich nun direkt per SSH mit dem Raspberry verbinden. Geht dies nicht, bleibt noch die Möglichkeit, sich per Tastatur und Display direkt am Raspberry anzumelden. Dazu gibt man als login „root“ und das Password „root“ ein. Anschliessend ruft man den Befehl „ifconfig“ auf. Nun werden die Netzwerkschnittstellen mit ihren Daten angezeigt. Es sollte ein Eintrag mit „eth0“ aufgeführt werden. Dort steht neben „inet“ eine Zahlenfolge, dies entspricht der IP-Adresse, unter der der Raspberry zu erreichen ist (bei mir 192.168.1.28).

HINWEIS: Beim erstmaligen verbinden per SSH wird man darauf hingewiesen, dass die Authentizität des Raspberry nicht überprüft werden kann. Man wird gefragt, ob man die Verbindung trotzdem aufbauen möchte. Diese Frage sollte man dann mit yes beantworten. Das sieht beispielhaft dann wie folgt aus:

Bildschirmfoto von »2013-12-25 16:51:52«

Verbindung per SSH mit Raspberry Pi herstellen und „Fingerabdruck“ lokal speichern

Eine Verbindung per SSH-Client kann man unter Linux mit folgender Befehlszeile aufbauen:

ssh -l root [IP-Adresse Raspberry Pi]

Mit der Option -l wird dem SSH-Client mitgeteilt, mit welchem Benutzernamen man sich verbinden will. Dies ist in diesem Fall root.
[IP-Adresse Raspberry Pi] ersetzt man entsprechend mit der ermittelten IP-Adresse des Raspberry Pi, im Beispiel oben 192.168.1.28.

Ländereinstellung anpassen

Standardmässig ist die Arch-Installation nicht auf deutsch eingestellt. Daher passen wir das noch an.

Bildschirmfoto von »2013-12-25 17:04:30«

Spracheinstellung nach Installation

Um eine Spracheinstellung vornehmen zu können, muss in /etc/locale.gen eine passende Zeile auskommentiert oder hinzugefügt werden. Die einfachste Variante ist folgende Zeilen ausführen zu lassen:

echo de_DE.UTF-8 UTF-8 >> /etc/locale.gen
locale-gen
localectl set-locale LANG="de_DE.UTF-8"
Spracheinstellung auf deutsch und UTF-8 setzen

Spracheinstellung auf deutsch und UTF-8 setzen

Damit die Änderungen greifen, muss der Raspberry Pi mit folgender Zeile neu gestartet werden. Dabei wird die SSH-Verbindung zum Raspberry beendet:

systemctl reboot

Partitionieren des Installationsmedium

Standardmässig wird nur ein 2GB grosses Image auf die SD-Karte geschrieben. Daher geht in der Regel viel Speicherplatz verloren, der auf der SD-Karte noch vorhanden ist. Im Folgenden wird beschrieben, wie die Partition(en) vergrössert werden, damit der komplette Speicherplatz auf der SD-Karte genutzt werden kann. Ich habe mich an der Anleitung orientiert, welche hier zu finden ist.

Die folgenden Befehle kann man direkt so eingeben:

fdisk /dev/mmcblk0
p
d
2
n
e
2
[Return]
[Return]
n
l
[Return]
[Return]
p
w

Das sieht im Terminal dann wie folgt aus:

Partition neu anlegen

Partition neu anlegen

Nun muss der Raspberry wieder neu gestartet werden:

systemctl reboot

Wenn er wieder hochgefahren ist und wir uns per SSH verbunden haben, vergrössern wir die Partition:

resize2fs /dev/mmcblk0p5
Partition vergrössern

Partition vergrössern

Nun steht der volle Speicherplatz der SD-Karte zur Verfügung!

System updaten/upgraden

Zu guter Letzt aktualisieren wir die Arch Installation auf den aktuellsten Stand. Dazu folgende Befehle ausführen:

pacman -Sy
pacman -Su --noconfirm
systemctl reboot

Der Reboot am Ende ist nur notwendig, wenn man erkennt, dass ein neuer Linuxkernel installiert wurde.

#PrismBreak – Daten sichern

Owncloud wurde bei mir so eingerichtet, dass eine PostgreSQL Datenbank genutzt wird. Die Daten, die dort gespeichert werden, sollte man sichern für den Fall, dass der Rechner einmal nicht mehr so will wie man es selbst will. Da auf der PrismBreakBox auch die Mails liegen, sollten diese auch gesichert werden. Und die Sicherungen sollten auch automatisiert laufen.

Zum Komprimieren der Daten nutze ich jetzt pigz. Es verteilt das Komprimieren der Daten auf mehrere Rechenkerne. Zum Installieren folgende Befehle ausführen:

su -
apt-get install pigz

Mails sichern

Die vorhandenen Mails werden direkt im Filesystem gesichert. Dazu muss das Backup pro Mailuser eingerichtet werden. Zuerst zum Benutzer wechseln, für den das Backup eingerichtet werden soll:

su - username

Nun wird ein Skript angelegt, welches die Daten in eine Datei zusammenführt und komprimiert. Dazu joe backup-mail.sh ausführen. In die neu zu erstellende Datei folgendes einfügen:

#! /bin/bash
CURRENT_DATE=$(date '+%Y%m%d')

BACKUP_FILENAME='Maildir.Backup.'$CURRENT_DATE'.tar'
BACKUP_COMPRESS_FILENAME='Maildir.Backup.'$CURRENT_DATE'.tar.gz'

tar cvf $BACKUP_COMPRESS_FILENAME --use-compress-program /usr/bin/pigz ./Maildir/* ./Maildir/.??*

mv $BACKUP_COMPRESS_FILENAME /verzeichnis/wo/backups/abgelegt/werden

Die Skriptdatei mittels folgendem Befehl ausführbar machen:

chmod u+x backup-mail.sh

Nun noch automatisch einmal am Tag das Skript ausführen lassen mittels Cron:

crontab -e

Folgende Zeile am Ende einfügen:

3 5 * * * /home/username/backup-mail.sh

Damit wird morgens um 05 Uhr 03 das Skript aufgerufen.

Datenbanken sichern

Die Datenbanken werden einfach per Datenbank-Dump in einer Datei gesichert. Mit dieser Datei kann man dann die Datenbank im Fall der Fälle wieder herstellen.

Zuerst wechselt man zum root User zurück um dann zum postgres-User wechseln zu können.

exit
su - postgres

Dann legt man mittels joe backup_owncloud.sh eine Skriptdatei an und fügt folgendes ein:

#! /bin/bash
CURRENT_DATE=$(date '+%Y%m%d')

BACKUP_FILENAME='Postgresql.Owncloud.Backup.'$CURRENT_DATE'.dump'
BACKUP_COMPRESS_FILENAME='Postgresql.Owncloud.Backup.'$CURRENT_DATE'.dump.gz'

pg_dump owncloud > $BACKUP_FILENAME

pigz -9 $BACKUP_FILENAME

mv $BACKUP_COMPRESS_FILENAME /verzeichnis/wo/backups/abgelegt/werden

Die Skriptdatei mittels folgendem Befehl ausführbar machen:

chmod u+x backup_owncloud.sh

Damit das Skript automatisch ausgeführt wird, wird ein täglicher Cron-Job eingerichtet:

crontab -e

Im Editor folgende Zeile einfügen:

13 6 * * * /var/lib/postgresql/backup_owncloud.sh

Speichern und Editor schliessen. Damit wird das Backupskript jeden Tag um 06 Uhr 13 aufgerufen.

#PrismBreak – Eigene Sourcecode Repositories hosten

Als Entwickler benötige ich für meine Projekte Repositories, in denen der Sourcecode verwaltet wird. Aktuell bin ich noch bei Repositoryhosting. Da ich meine Daten aber gerade zu mir zurückführe und selbst hoste, werden auch meine Sourcecode Repositories auf meiner PrismBreakBox gehostet werden. Ich habe bisher Subversion, Git und Mercurial eingesetzt. Aufgrund der bisherigen Erfahrungen habe ich mich für Mercurial entschieden.

Mercurial installieren

Als root User anmelden:

su -

Nun folgenden Befehl zur Installation ausführen:

apt-get install mercurial mercurial-server

Mercurial ist nun installiert. Der Zugriff auf Mercurial erfolgt über Apache per SSL. Wir hängen uns dazu an die Owncloud SSL Konfiguration an. Zuerst richten wir aber die passende Umgebung für die Repositories ein. Bei mir war durch die Installation von Mercurial bereits ein passender User eingerichtet (hg). Allerdings hatte er noch kein Homeverzeichnis:

su - hg
bash
mkdir -p /home/hg/cgi
mkdir /home/hg/repos

Testweise legen wir ein Repository an:

cd /home/hg/repos
mkdir testproject
cd testproject
hg init

Damit ist ein Repository testproject angelegt.

Webzugriff einrichten

Nun richtet man den Zugriff per Apache2 ein. Hier kopiert man aus der Dokumentation das passende CGI-Skript, welches die Kommunikation mit den Clients übernehmen wird.

cd /home/hg/cgi
cp /usr/share/doc/mercurial-common/examples/hgweb.cgi .

Dann legt man noch eine Konfgurationsdatei an:

joe hgweb.config

Dort trägt man folgendes ein. Damit werden alle Repositories über Apache2 remote verfügbar gemacht:

[paths]
/ = /home/hg/repos/*

Datei speichern und Editor verlassen.

Die Repositories machen wir nun für den www-data User, unter dem der Apache2 läuft, beschreibbar:

cd ..
chmod -R www-data:www-data repos

In /etc/mercurial/hgrc muss noch das Pushen erlaubt werden. Folgende Befehle ausführen, um die Datei zu öffnen:

exit
exit
joe /etc/mercurial/hgrc

In der Datei folgendes einfügen:

[web]
allow_push = username

Bei username bitte den Benutzernamen eintragen, mit dem man auf das oder die Repositories zugreifen will. Mehrere Benutzernamen können per Komma (,) getrennt aufgeführt werden.

Nun konfigurieren wir den Zugriff im Apache2 so, dass der Zugriff auf die Repositories per SSL erfolgt und ein Benutzer sich authentifizieren muss.

SSL und Authentifizierung

Wie schon am Anfang geschrieben, nutzen wir die vorhandene Owncloud-Konfiguration. Dazu passen wir die Konfigurationsdatei /etc/apache2/conf.d/owncloud-ssl.conf an. Die fett hervorgehobenen Einträge sind neu und betreffen die Mercurial-Konfiguration und sind jetzt neu einzufügen:

VirtualHost *:443>
      ServerName calibanatspace.synology.me
      SSLEngine on
      SSLCertificateFile /etc/ssl/crt/apache-cert.pem  
      SSLCertificateKeyFile /etc/ssl/key/apache-key.pem
      DocumentRoot /var/www
      CustomLog /var/log/apache2/ssl-access_log combined
      ErrorLog /var/log/apache2/ssl-error_log

# mercurial   
<Location /hg>
    AuthType Digest
    AuthName "Mercurial repositories"
    AuthDigestProvider file
    AuthUserFile /home/hg/hgusers
    Require valid-user
</Location>

#Where the magic happens
ScriptAlias /hg "/home/hg/cgi/hgweb.cgi"

<Files ~ "^\.hg">   
    Order allow,deny
    Deny from all
    Satisfy all
</Files>
</VirtualHost>

Nun sollte mindestens ein Benutzer in /home/hg/hgusers angelegt werden. Dazu folgenden Befehl ausführen:

su - hg
htdigest -c /home/hg/hgusers "Mercurial repositories" username
exit

Nun noch den Apache2 einmal durchstarten damit die Änderungen greifen:

service apache2 restart

Hinweis für Eclipse-Mercurial Nutzer

Standardmässig scheint bei Eclipse im EclipseMercurial Plugin die Option Verify HTTPS server certificate aktiviert zu sein. Dies führt zu fehlern, wenn man ein selbst erstelltes Zertifkat nutzt. Daher ist dies zu deaktivieren. Zu finden ist die Option über Window -> Preferences -> Team -> Mercurial.

#PrismBreak – Owncloud und Hintergrundjobs

Wer z.B. die Owncloud App News als Newsreader einsetzt, muss Owncloud die Möglichkeit geben, in zeitlichen Intervallen seine Daten automatisch zu aktualisieren. Bei der App News werden entsprechend alle Newsfeeds aktualisiert. Entsprechend der Owncloud Dokumentation gibt es drei Varianten. Ich habe die Cron-Variante gewählt. Entsprechend folgenden Befehl ausführen:

crontab -u www-data -e

Nun öffnet sich ein Editor mit einer Datei. Dort folgende Zeile einfügen:

*/15  *  *  *  * php -f /var/www/owncloud/cron.php

Die Daten speichern und den Editor schliessen. Es werden nun alle 15 Minuten die Daten innerhalb der Owncloud-Instanz aktualisiert.

#PrismBreak – Owncloud aufsetzen

Owncloud dient als Grundlage für weitere Umsetzungen. Unter anderem wird Owncloud die Kontakt- und Kalenderdaten bereitstellen, ausserdem nutze ich die Instanz bereits als Newsreader.

Die Daten in Owncloud werden in einer Datenbank gespeichert. Owncloud kann mit einer mitgelieferten sqlite Instanz betrieben werden oder mit einer externen Datenbank. Ich habe mich für letzteres entschieden, für eine PostgreSQL-Datenbank.

Als Quellen für die Installation haben folgende Webseiten gedient:

PostgreSQL aufsetzen

Auf dem Rechner mittels

su -

als root arbeiten. Dann folgenden Befehl eingeben und damit PostgreSQL und Zubehör installieren:

apt-get install postgresql postgresql-client postgresql-doc phppgadmin

Nun muss ein Benutzer und eine Datenbankinstanz für Owncloud angelegt werden. Dazu sind folgende Befehle notwendig:

psql -Upostgres
CREATE USER username WITH PASSWORD 'password';
CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE';
ALTER DATABASE owncloud OWNER TO username;
GRANT ALL PRIVILEGES ON DATABASE owncloud TO username;
\q

Ich habe für username owncloud eingesetzt. Bei password kann man ruhig ein kompliziertes und langes Passwort nehmen. Meines hat 40 Stellen.

Hinweis

Falls die Anmeldung an der Datenbank beim psql-Befehl mit

psql: FATAL:  Ident authentication failed for user "postgres"

misslingt, in der Datei pg_hba.conf in /etc/postgresql/X.Y/main/ folgende Zeile entsprechend dem Kommentar anpassen:

local all all peer     # replace ident or peer with trust

wird bei mir zu

local all all trust     # replace ident or peer with trust

Anschliessend ist die PostgreSQL-Datenbank neu zu starten:

service postgresql reload

Owncloud installieren

Die aktuelle Pakete mit Installationsanleitung finden sich unter http://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud. Dort auf das Debian-Symbol klicken. Folgende Befehle ausführen:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key

Damit ist Owncloud installiert, aber noch nicht eingerichtet. Als nächsten Schritt erstellt/editiert man die Datei /etc/php5/conf.d/20-pgsql.ini (z.B. mittels joe). Die Datei sollte folgenden Inhalt haben:

; configuration for php PostgreSQL module
; priority=20
; extension=pdo_pgsql.so
extension=pgsql.so

[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0

Nun kann man Owncloud aufrufen und fertig einrichten lassen. Dazu die passende Url aufrufen in der Form http://prismbreakbox.local/owncloud/. Man bekommt folgende Seite angezeigt:

Bildschirmfoto

Der Benutzername für das Administrator-Konto sollte man nicht unbedingt admin oder administrator nennen. Ein ausgefallener Name erschwert Angreifern die Arbeit. Ich habe hier im Beispiel blubber gewählt. Ein langes Passwort ist hier dringend erforderlich, am Besten 40 Stellen.

Bei Datenbank einrichten wählt man den PostgreSQL Reiter und gibt die bei der Anlage der Datenbank festgelegten Daten hier ein. Anschliessend betätigt man Installation abschliessen und die Owncloud-Instanz ist eingerichtet.

Owncloud per SSL ausliefern

Eine fertige Anleitung, an die ich mich gehalten habe, findet sich unter http://ubuntuserverguide.com/2013/04/how-to-setup-owncloud-server-5-with-ssl-connection.html.

#PrismBreak – Google Mail ersetzen mit eigenem IMAP – Mailserver

Für das Speichern der eigenen Mails wird ein IMAP-Server genutzt. Ich habe mich für Dovecot entschieden. Für die Installation meldet man sich als root-User auf der PrismBreakBox an, z.B. per SSH. Befindet man sich auf der Maschine, gibt mal folgende Anweisung ein, um Dovecot zu installieren:

apt-get install dovecot-core dovecot-imapd

Die Software wird installiert und eine einfache Konfiguration eingerichtet. Anschliessend öffnet man seinen Browser und öffnet die Webmin Seite unter https://prismbreakbox.local:10000/. Da das Dovecot-Modul noch nicht aktiviert ist, gibt man bei Search entsprechend dovecot ein und bestätigt die Eingabe. Im ersten Eintrag der angezeigten Liste klickt man den Eintrag unter der Spalte Module, Dovecot IMAP/POP3 Server, an. Leider sind die angeboteten Konfigurationsmöglichkeiten nicht für meine Ansprüche ausreichend. Allerdings kann man die Konfigurationsdatei direkt über die Webmin Oberfläche editieren. Hierzu den Punkt ganz rechts, Edit Config Files, auswählen. Es wird nun die Dovecot-Konfigurationsdatei angezeigt. Den Inhalt mit folgenden Zeilen überschreiben:

listen = *
auth_mechanisms = plain login
log_path = /var/log/dovecot.log
mail_location = maildir:~/Maildir
protocols = imap
service imap-login {
  inet_listener imap {
    port = 0
  }
}
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}
passdb {
  driver = pam
}
protocol imaps {
  imap_idle_notify_interval = 2 mins
  imap_max_line_length = 64 k
 imap_client_workarounds = tb-extra-mailbox-sep
}
mail_max_userip_connections = 20

Die Änderung mit Save bestätigen und auf der folgenden Seite mit Apply Configuration aktivieren.

Mails einsammeln von verschiedenen Accounts

Mit dem iMAP-Server alleine ist es nicht getan. Dort werden die Mail nur aufbewahrt. Aber wie kommen die Mails von den eigenen Mailaccounts dort hin? Eigentlich wollte ich erst Fetchmail benutzen. Da ich aber schon eine fertige Konfiguration von vorherigen #PrismBreak Experimenten hatte, und die Konfiguration mittels Webmin nicht so einfach aussah, habe ich doch wieder getmail genommen.

Die ganzen folgenden Arbeiten werden mit dem eigenen Benutzer durchgeführt.

Zuerst legt man pro Mail-Account, den man Abrufen möchte, eine Konfigurationsdatei für getmail an. Ich habe dazu in meinem home-Verzeichnis ein Unterverzeichnis .getmail angelegt:

cd ~
mkdir .getmail
cd .getmail

Nun legt man sich für einen Mail-Account die Konfigurationsdatei an. Pro Mailaccount, der abgerufen werden soll, wiederholt sich der Vorgang. Ich benutzte wieder joe als Editor.

joe mein@mailaccount.de.getmail

Die Datei wird neu angelegt, die fett hervorgehobenen Einträge passt man an seinen Account an:

[options]
message_log = /home/benutzername/.getmail/log/mein@mailaccount.de.log
verbose = 2

[retriever]
type = SimplePOP3SSLRetriever
server = pop.meinmailhoster.de
port = 995
username = meinBenutzerAccount
password = MeinGeheimesPasswort
use_apop = false
timeout = 180

[destination]
type = Maildir
path = /home/benutzername/Maildir/
user = benutzername
filemode = 0600

Die Datei mit Ctrl+K und anschliessend X speichern. Den Vorgang für jeden Mailaccount wiederholen, für den man die Mails abholen will und in den IMAP-Server einsortiert haben möchte.

Nun muss noch ein Shell-Skript angelegt werden, welches regelmässig durch Cron aufgerufen wird und getmail für jede Konfiguration aufruft.

joe getmail.sh

In die Datei wird folgendes eingetragen. Die fett hervorgehobenen Eintrag sind entsprechend anzupassen:

#! /bin/sh
/usr/bin/getmail -q -d --rcfile /home/benutzername/.getmail/mein@mailaccount.de.getmail --getmaildir /home/benutzername/.getmail

Die Zeile, welche mit /usr/bin/getmail beginnt, ist für jede Konfigurationsdatei in getmail.sh neu anzuhängen, entsprechend angepasst für die zusätzliche Konfigurationsdatei.

Anschliessend das Skript mit folgendem Befehl ausführbar machen:

chmod a-x getmail.sh

Regelmässiges Mailabrufen einrichten

Die Konfiguration zum Abholen und Einsortieren der Mail in den eigenen IMAP-Account wurde oben beschrieben. Nun geht es darum, dass dieser Prozess regelmässig automatisch aufgerufen wird. Hierzu wird Cron genutzt. Dazu ruft mal crontab auf:

crontab -e

Folgender Eintrag ruft alle fünf Minuten das Shell-Skript auf:

*/5 * * * * /home/benutzername/.getmail/getmail.sh &>/dev/null