EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ qmail ]

"yeni qmail sunucuya eski hesaplari tasima" - Hasan AHLATCI - (2007-05-30 14:01:33)   [3115]

Yeni bir qmail sunucu kurdunuz ve eski sunucunuzda olan kullanıcıları bu yeni sunucuya taşımak istiyorsunuz.
izinler, dizinlerin farklı olması vs gibi sorunlar ile karsilasabilirsiniz.
Bunun yerine asagidaki script eski mailleri yeni yerine tasima konusunda size yardimci olacaktir.

script in calismasi icin gerekli olanlar:
1-Yeni serverda kullanicilar mysql de tutuluyor
2-mysql root sifresi yoktur ( isterseniz -psifre ile scripti degistirip password verebilisiniz)
3-vpopmail derlenirken her domain tek bir tabloda tutulacak sekilde derlenmis olmali
her domain farkli tablolarda tutuluyor ise sql cumlecigi degistirilmelidir.
4-kullanicilarin tutuldugu db ismi vpopmail
5-eski serverin da qmail oldugu varsayilmistir. (dizin yapisi scrtip icinden degistirilebilir)
6-eski serverda ~vpopmail/domains/ dizini altinda tutulan domain klasorlerini yeni serverda /var/tmp altinda atildigi varsayilmis
7-scripti ./tasi.sh domainadi seklinde calistirmaniz gerekli
eger test.com a ait kullanici boxlarini tasiyacaksaniz asagidaki komutu vermelisiniz
#./tasi.sh test.com
tasinan mail boxlar /var/tmp/ altinda domainname.tasinanlar olarak kaydedilmektedir.


#more tasi.sh
#!/bin/ksh
cd /var/tmp/$1
ls > /var/tmp/$1.txt
cd ..
alan_adi=`echo $1`
>/var/tmp/$1.tasinanlar
while read line
do
echo \"use vpopmail;\" > test.sql
echo \"select pw_dir from vpopmail where pw_domain=\'$alan_adi\' and pw_name=\'$line\';\" >> test.sql
dizin=`mysql -uroot < test.sql`
dizin2=`echo $dizin |awk -F\" \" \'{print $2}\'`
if [[ -a $dizin2 ]]
then
find /var/tmp/$1/$line/Maildir/new/ -type f -maxdepth 1 -print -exec mv {} $dizin2/Maildir/new \;
find /var/tmp/$1/$line/Maildir/cur/ -type f -maxdepth 1 -print -exec mv {} $dizin2/Maildir/cur \;
find $dizin2/Maildir/new -type f -exec chown vpopmail:vchkpw {} \;
find $dizin2/Maildir/new -type f -exec chmod 600 {} \;
find $dizin2/Maildir/cur -type f -exec chown vpopmail:vchkpw {} \;
find $dizin2/Maildir/cur -type f -exec chmod 600 {} \;
echo $dizin2 >> /var/tmp/$1.tasinanlar
fi
done < /var/tmp/$1.txt


Arkadaşıma gönder , Ana Sayfa