#!/tmp/sh
PATH=/opt/bin:/opt/sbin:/opt/sbin:/opt/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin:/s
/opt/bin/getmail -q -d --rcfile /volume1/homes/User/.getmail/gmx.rc
Das heisst, die Platten schlafen sauber ein? Sehr schön, dann werde ich das mal wieder in meinen Code im svn übernehmen.ha wie geil ist das denn. Es funktioniert. Vielen Dank an alle!!!!!!
Hier mal eine Idee wie es mit verschiedenen Usern klappen könnte. Das Script muss nun unter root laufen, damit Zugriff auf die Homeverzeichnisse der User besteht.@jahlives
Ja sie legt sich schlafen!! Das steht mir auch noch bevor. Ein Konto ist eingebunden. Nun kommt das zweite!
#!/tmp/sh
## Name der Datei, die die getmail Befehle fuer den User hat
pfad_getmail=getmail.sh
## Logfile
getmail_log=/path/to/log
if test -e /tmp/checkmaill ; then
echo "Code rennt bereits"
exit
elif test "$(whoami)" != "root" ; then
echo "Das Script MUSS unter root laufen. Mittels su <user> holt das Script die Emails dann als <user> ab"
exit
elif test ! -e $getmail_log ; then
echo "Das Logfile unter $getmail_log konnte nicht gefunden werden"
exit
fi
## Benoetigte Kommandos in /tmp "erstellen", damit die Platten durchschlafen können
## WICTHIG: Der Link zwischen /tmp/busybox und /tmp/sh MUSS manuell vor dem Aufruf der Scriptes erstellt werden!!
cp -f /bin/busybox /tmp/ > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/sleep > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/expr > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/test > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/pidof > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/cut > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/ls > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/grep > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/su > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/find > $getmail_log 2>&1
i=0
touch /tmp/checkmaill
echo $$ > /tmp/checkmaill
PATH=/tmp
while true; do
s=`pidof imap`
t=''
if test "$s" != '' ; then
for var in $s ; do
tt=`ls -all /proc | grep $var | cut -d' ' -f6`
if test "$tt" != "$t" ; then
for ii in `find /volume1/homes/$tt -name $pfad_getmail`; do
echo "su $tt -c \"$ii\" > $getmail_log 2>&1"
done
t=$tt
else
echo "Benutzer bereits bearbeitet"
fi
done
i=`expr $i + 1`
sleep 5
else
tt=''
i=`expr $i + 1`
sleep 1
if test `expr $i % 5` -eq 0 ; then
i=0
for ii in `find /volume1/homes/ -name $pfad_getmail`; do
tt=`ls -all $ii | cut -d' ' -f6`
echo "su $tt -c \"$ii\" > $getmail_log 2>&1"
done
else
echo schlafen
fi
fi
done
#!/tmp/sh
## NAME des getmail Scripts hier anpassen (ohne Pfadangabe!!!)
pfad_getmail=getmail.sh
# Pfad fuer Logfile hier angeben. ALLE Ausgaben des Skriptes werden hierhin umgeleitet
getmail_log=/path/to/log
if test -e /tmp/checkmaill ; then
echo "Code rennt bereits"
exit
elif test "$(whoami)" != "root" ; then
echo "Das Script MUSS unter root laufen. Mittels su <user> holt das Script die Emails dann als <user> ab"
exit
elif test ! -e $getmail_log ; then
echo "Das Logfile unter $getmail_log konnte nicht gefunden werden"
exit
fi
## Benoetigte Kommandos in /tmp "erstellen", damit die Platten durchschlafen können
## WICTHIG: Der Link zwischen /tmp/busybox und /tmp/sh MUSS manuell vor dem Aufruf der Scriptes erstellt werden!!
cp -f /bin/busybox /tmp/ > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/sleep > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/expr > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/test > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/pidof > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/cut > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/ls > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/grep > $getmail_log 2>&1
# su wird nur dann benoetigt wenn das Kommando DIREKT in diesem Script aufgerufen wird (siehe Zeile 48+49 und 65+66)
#ln -s /tmp/busybox /tmp/su > $getmail_log 2>&1
ln -s /tmp/busybox /tmp/find > $getmail_log 2>&1
i=0
touch /tmp/checkmaill
echo $$ > /tmp/checkmaill
PATH=/tmp
while true; do
s=`pidof imap`
t=''
if test "$s" != '' ; then
for var in $s ; do
tt=`ls -all /proc | grep $var | cut -d' ' -f6`
if test "$tt" != "$t" ; then
for ii in `find /volume1/homes/$tt -name $pfad_getmail`; do
# Die folgende Zeile nur dann "entkommentieren" wenn keine virtuellen Benutzer verwendet werden
# Sonst gibt es Probleme mit deliver. ACHTUNG: Wenn diese Zeile auskommentiert ist MUSS su <user> in getmail.sh gesetzt werden,
# sonst wird das Script (getmail.sh) unter root ausgeführt und das gibt garantiert Aerger mit dem dovecot
#su $tt -c "$ii" > $getmail_log 2>&1
$ii > $getmail_log 2>&1
done
t=$tt
fi
done
i=`expr $i + 1`
sleep 60
else
tt=''
i=`expr $i + 1`
sleep 1
if test `expr $i % 3600` -eq 0 ; then
i=0
for ii in `find /volume1/homes/ -name $pfad_getmail`; do
tt=`ls -all $ii | cut -d' ' -f6`
# siehe oben (Zeile 44-46)
#su $tt -c "$ii" > $getmail_log 2>&1
$ii > $getmail_log 2>&1
done
fi
fi
done
afaik müsste es reichen die Links neu zusetzen resp die Dateien zu kopieren.hallo,
wenn ich den neusten Diskstationmanager aufspiele, muss ich doch wieder die Links neu setzen? Mehr müsste ich aber nicht machen, da ja eigentlich keine dateien bei einem Firmwareupgrade gelöscht werden?
#!/bin/sh
pid_getmail='/tmp/getmail.pid'
if [ "x$(cat $pid_getmail)" != 'x' ]; then
exit
else
touch $pid_getmail
echo $$ > $pid_getmail
su DEIN_BENUTZER -c "/opt/bin/getmail -q -d --getmaildir /home/DEIN_BENUTZER/.getmail -r DEIN_GMX.rc -r DEIN_GMAIL.rc -r DEIN_WEB.rc"
echo > $pid_getmail
exit
fi
Wenn du ein regelmässiges Backup hast dann ich der Schaden auch im 0.0001% Fall relativ begrenzt ;-) Ich persönlich habe nur einmal einen "Komplettverlust" der Daten eingefahren bisher. Da war ich aber auch selber schuld, weil ich die Platte ausgebaut hatte und am PC anders partitionieren wollte. Das mochte die DS dann überhaupt ned.Ich habe Sorge, dass das mit den Skripten ein Problem werden kann. Ich habe auf der DS folgendes eingerichtet:
1. OpenVPN Server
2. FTP Server
3. (Mailstation)
Wenn du diese Komponenten allesamt von der Firmware nutzt, dann musst du keine weiteren Start/Stop-Scripte anlegen. Die Firmware beendet ihre eigenen Prozesse eigentlich immer sauber ;-)
Das mit den speziellen Start-Stop-Scripten gilt nur für via ipkg installierte Software. Für getmail brauchst du aber kein solches Script, weil getmail kein ständig laufender Prozess ist, sonder nur ein Kommando welches bei bedarf gestartet wird. Start-Stop-Scripte braucht nur was automatisch beim boot gestartet werden soll
vorallem VPN und FTP sollten auch danach wieder funktionieren... Muss ich also "Startup Script openvpn mit NAT" und damit dann auch noch "modprobe" installieren?
Was ist wenn ich mit der Spielerei am System die DS lahmlege, kann ich dann das DSM/Betriebssystem neuinstallieren ohne alle Daten der gemeinsamen Ordner zu verlieren? Was ist mit den home-Verzeichnissen? Wegen einer neuen HDD: mach ich hiermit was falsch? Western Digital Caviar Green 1500GB (WD15EARS) laut Komp-Liste soll eine bestimmte Charge funktionieren, natürlich weiß ich nicht aus welcher die stammen würde.
Natürlich kann man den Fall des kompletten Datenverlusts nicht gänzlich ausschliessen, aber in 99.999% der Fälle kann der "schlimmste Fall" durch einen harten Reset behoben werden. Und wiederum in 99.999% der Fälle bleiben dabei alle Userdaten erhalten. Userdaten sind alles was unterhalb von /volume1 liegt
Und zu getmail: wenn ich Mails mit getmail abhole, landen die dann im Posteingang des Benutzer, wobei "Posteingang" der ist, den auch Roundcube benutzt? Oder hat das nichts miteinander zu tun? Also sind die getmail-Mails dann quasi im Webmail/RC sichtbar?
Alle Prozesse liefern die Mail in die Mailbox des jeweiligen Users. RC und jeder andere Mailclient rufen diese Mailbox(en) dann auf und stellen die Mails dar. Vo dem her verwenden alle dasselbe
Fragen über Fragen und dann noch das dunkle Gefühl mir gleich meine DS zu zerstören
Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.
Als Dankeschön schalten wir deinen Account werbefrei.