Getmail Script DSM 6.0

Status
Für weitere Antworten geschlossen.

vore

Benutzer
Mitglied seit
20. Mrz 2011
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Hallo!
Ich habe meine Diskstation 211 auf DSM 6 upgedated.
Anscheinend gibt es aber eine Änderung mit der Busybox.
Das Getmail-Script bricht beim Kopieren der Busybox nach /tmp ab. Somit werden dann auch keine Mails mehr abgeholt.
Ich habe unter /bin nachgesehen, dort gibt es auch keine Busybox mehr. Ich bin etwas ratlos..

Gruß

Vore

Rich (BBCode):
#! /bin/sh
test -f /opt/bin/collect_mails.sh || exit 0
   cp /bin/busybox /tmp
   ln -s /tmp/busybox /tmp/sh
   sh /opt/bin/collect_mails.sh
exit


#!/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=/opt/var/log/user.getmail.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

## 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 
          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
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

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.

:coffee:

Hier gehts zum Kaffeeautomat