Re: Script für Mailboxkonvertierung?
Hallo Lars, Am 2004-10-21 07:12:49, schrieb Lars B: moin, Michelle, cool - scheint zu klappen! ich hatte in ?man su? zwar diese Syntax gesehen, muss echt gestehen, dass ich - obwohl ich es irgendwann mal bis zum abitur geschafft hatte, ungelogen ;-) - für manpages zu doof bin bzw. da noch nie richtig was draus gelernt habe - so ein kurzes beispiel wie deins ist mir dann lieber. Ich habe auch ne ganze Weile gebraucht, bis ich das mit dem -- geraft hatte. Und was die manpages betrifft,habe ich diese garantiert 5000 mal gelesen. jetzt muss ich mal schauen, ob ich den rest der konvertierung - abarbeiten von username und password aus einer liste - auch noch hinbekomme. Naja, wie willste das machen ? Eine Datei anlegen und pro Zeile einen Benutzer/Password ? Also: _( 'newuser.list' )___ / | user1 clar_pass1 | user2 clar_pass2 | user3 clar_pass3 | user4 clar_pass4 | user5 clar_pass5 \__ Das kannste dann mit _( 'newuser.exe' ) / | '!/bin/bash | | (cat newuser.list ; echo ) | | while read NEWUSER NEWPASS | do |CNEWPASS=`mcrypt NEWPASS` |let DAYSINCE=`date +%s` |let DAYSINCE=DAYSINCE/3600/24 |echo -n $NEWUSER:x:$NEWUID:$NEWGID:$NEWNAME,,,:$NEWHOME:$NEWSHELL passwd.new |echo -n $NEWUSER:$CNEWPASS:$DAYSINCE:0:9:7::: shadow.new | done \__ danke jedenfalls gruss lars Greetings Michelle -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSM LinuxMichi 0033/3/8845235667100 Strasbourg/France IRC #Debian (irc.icq.com) signature.pgp Description: Digital signature
Script für Mailboxkonvertierung?
Liebe Gemeinde, es steht die Umstellung eines Mailservers an, wozu ich etwa 500 Postfächer im alten mbox-Format zu Maildir konvertieren müsste; zum Anlegen der User habe ich mir ein kleines Script modifiziert, was auch super funktioniert (Script starten, name und passwort eingeben, fertig!), ich werde die User alle damit anlegen, weil das höchstwahrscheinlich schneller gehen dürfte als studenlanges rumbasteln an einem script, umd die user damit anlegen zu lassen. Nun muss ich zum konvertieren der mboxes ins maildir aber als su ins jeweilige home-verzeichnis und mb2md -s mbox -d maildir/ ausführen - im Script plaziert, meckert mir su, dass er nichts ausführen kann in der yntax: su $LOGIN mb2md -s mbox -d Maildir/ Hat jemand eine Idee, wie ich die Konvertierung elegant lösen könnte? Die Befehlsfolge su $LOGIN mb2md -s mbox -d Maildir/ bekomme ich nicht als Script aufgerufen, weil ich nicht weiss, wie ich dem Script nacheinander die namen aller user übergeben soll. Gibt es vielleicht auch die Möglichkeit, alle user in eine Textdatei zu schreiben und diese dann abarbeiten zu lassen? danke im Voraus für Tipps, im Anhang das Script, was ich mir zurechtmodifiziert habe. gruss lars echo echo -n Login name fuer den neuen User []: read LOGIN if [ -z $LOGIN ] then echo leer gueldet nicht.;exit fi test -d /home/adminz/scripte/mkumw/home/$LOGIN echo Den User gibt es bereits bzw ein /home/-Verzeichnis ist bereits vorhanden! Bitte /home/-Verzeichnis loeschen oder /etc/passwd bzw. /etc/shadow ueberpruefen! echo Neuer login name: $LOGIN echo echo Benutzer wird angelegt; falls nicht, bitte zum Abbruch Control-C druecken. Ansonsten echo ENTER zum Anlegen des Accounts und Einrichten des Passworts! read FOO echo #echo Making new account... /usr/sbin/useradd $LOGIN -g users -s /bin/bash -d /home/adminz/scripte/mkumw/home/$LOGIN mkdir /home/adminz/scripte/mkumw/home/$LOGIN chown $LOGIN /home/adminz/scripte/mkumw/home/$LOGIN if [ -d /home/adminz/scripte/mkumw/home/$LOGIN ]; then chmod 711 /home/adminz/scripte/mkumw/home/$LOGIN fi echo /usr/bin/passwd $LOGIN /usr/sbin/postfix reload cd /home/adminz/scripte/mkumw/home/$LOGIN #su $LOGIN maildirmake Maildir cp /home/adminz/scripte/mkumw/alte-mails/$LOGIN /home/adminz/scripte/mkumw/home/$LOGIN/ chown $LOGIN /home/adminz/scripte/mkumw/home/$LOGIN/$LOGIN su $LOGIN mb2md -s /home/adminz/scripte/mkumw/home/$LOGIN/$LOGIN #-d /home/adminz/scripte/mkumw/home/$LOGIN/Maildir #su $LOGIN ../mbox2imap exit 0 echo Benutzer $LOGIN angelegt, Mails kopiert und in IMAP gewandelt exit 0
Re: Script für Mailboxkonvertierung?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Lars B wrote: | su $LOGIN mb2md -s mbox -d Maildir/ Hallo, Lars :-) Vielleicht fehlt dir nur ein '-c' wie su $LOGIN -c mb2md -s mbox -d Maildir/ ob dabei die Anführungszeichen notwendig sind kann ich Dir aber nicht verraten, vielleicht einfach mal testen. Hast Du denn vorher auch noch die Mails aus /var/spool/ kopiert? Ich hatte die mal aus versehen vergessen, das war nicht so klasse... Cheers, Jam - -- GPG-KeyID: 82201FC4 Available at my public keyserver www.gpg-keyserver.de -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.4 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFBdn0lvvmCkIIgH8QRAt9QAJ9nl3Wg7/a8niD1hNjMCcmjkjegCACfRXqY WeMCLkioRqFpyD97bGN6xjI= =2wjJ -END PGP SIGNATURE- -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Script für Mailboxkonvertierung?
hallo, das selbe problem/die selbe aufgabe hatte ich auch schon, hab mir dazu ein kleines perlskript geschrieben welches die umkonvertierung für mich erledigt hat. hat reibungslos funktioniert. hier der benötigte auszug aus dem perlskript: # mailhome anlegen und so system(/usr/bin/maildirmake /mail/$user); system(/bin/chmod -R +700 /mailhome/$p_u); my $path=/var/mail/$user; if (-e $path) { # mailboxkonvertierung vorbereiten $procmailrc=/tmp/procmailrc; open(PR,$procmailrc); print PR VERBOSE=on\n; print PR LOGABSTRACT=all\n; print PR LOGFILE=/tmp/procmail.log\n; print PR :0\n; print PR /mail/$user/; close(PR); # nun wirklich umkonvertieren system(/bin/cat /var/mail/$p_u | /usr/bin/formail -s procmail /tmp/procmailrc); } # noch die rechte anpassen, bei mir postfix als mta system(/bin/chown -R postfix:postdrop /mailhome/$user); den codeschnipsel kannste bei dir ja entsprechend implmentieren und für jeden user durchlaufen lassen. zum verständnis kannst du die aktionen ja auch händisch angehen, um zu sehen was hier eigentlich geschieht. hoffe geholfen zu haben, werner detter -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Script für Mailboxkonvertierung?
On 20.Oct 2004 - 16:51:35, Lars B wrote: Liebe Gemeinde, im Script plaziert, meckert mir su, dass er nichts ausführen kann in der yntax: su $LOGIN mb2md -s mbox -d Maildir/ man su, 1. su - verwenden. und 2. su -c mb2md -s mbox -d Maildir/ nutzen. Die Zeile in deinem Skript sollte also su -c mb2md -s mbox -d Maildir - $LOGIN lauten. Andreas -- Who is D.B. Cooper, and where is he now? -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Script für Mailboxkonvertierung?
moin, Michelle, cool - scheint zu klappen! ich hatte in ´man su´ zwar diese Syntax gesehen, muss echt gestehen, dass ich - obwohl ich es irgendwann mal bis zum abitur geschafft hatte, ungelogen ;-) - für manpages zu doof bin bzw. da noch nie richtig was draus gelernt habe - so ein kurzes beispiel wie deins ist mir dann lieber. jetzt muss ich mal schauen, ob ich den rest der konvertierung - abarbeiten von username und password aus einer liste - auch noch hinbekomme. danke jedenfalls gruss lars På 20.10.2004 kl. 21:47 skrev Michelle Konzack: Am 2004-10-20 16:51:35, schrieb Lars B: Liebe Gemeinde, Nun muss ich zum konvertieren der mboxes ins maildir aber als su ins jeweilige home-verzeichnis und mb2md -s mbox -d maildir/ ausführen - im Script plaziert, meckert mir su, dass er nichts ausführen kann in der yntax: su $LOGIN mb2md -s mbox -d Maildir/ Schon mal: su $LOGIN -- mb2md -s mbox -d Maildir/ versucht ? Hat jemand eine Idee, wie ich die Konvertierung elegant lösen könnte? Die Befehlsfolge su $LOGIN mb2md -s mbox -d Maildir/ bekomme ich nicht als Script aufgerufen, weil ich nicht weiss, wie ich dem Script nacheinander die namen aller user übergeben soll. Eine Datei mit allen $USER erstellen, einen pro Zeile und dann: for $LOGIN_USER in `cat liste.user` ; do su $LOGIN_USER -- mb2md -s mbox -d Maildir/ done Gibt es vielleicht auch die Möglichkeit, alle user in eine Textdatei zu schreiben und diese dann abarbeiten zu lassen? s.o. danke im Voraus für Tipps, im Anhang das Script, was ich mir zurechtmodifiziert habe. gruss lars Greetings Michelle -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSM LinuxMichi 0033/3/8845235667100 Strasbourg/France IRC #Debian (irc.icq.com)