Hali!
Adott ket gep (A, B); mindketton Debian cyrus22 fut. A feladat az, hogy A-rol B-re az osszes mailboxot atpakolni ugy, hogy a userek lehetoleg ne vegyenek eszre semmit (maintenance downtime megengedett). A megoldasom egy perl script, ami egy user adatait migralja:
- bejelentkezik A-ra (adminkent), lementi az ACL-t, quota-t stb.
- bejelentkezik B-re (adminkent), letrehozza a mailboxot
- rsync-kel attolja A-rol B-re a konkret leveleket (gyakorlatilag az egesz konyvtarat atmasolja, tehat index, cache, stb fajlokat is
- B-n csinal egy reconstructot, majd beallitja az ACL-t, quota-t stb.
- Kiirja nagy betukkel, hogy "DONE" ;-)
A script lefuttatasa utan szepen megjelenik a mailbox B-n, megvan az osszes level, beallitasok, minden, csak egy dolog a baj, hogy az osszes level olvasatlan.
Ezt szerintetek hogy lehetne orvosolni?
En ugy gondoltam, hogy ha az index, cache, header fajlokat is atmasolom, akkor jo lesz, de tevedtem.
- 702 megtekintés
Hozzászólások
Azt tudtuk megcsinálni, hogy az összes levelet seen-re állítod.
a lényeg ennyi volt:
function olvasotta_tesz()
{
mit=$1
echo Olvasottá teszem a $mit mappát....
echo a8000 SELECT $mit >>$parancs
for i in `seq 8001 8998`;
do
let uzenetszama=$i-8000
echo "a$i STORE $uzenetszama +flags \Seen" >>$parancs
done
echo a8889 SELECT $mit >>$parancs
}
és
function kilogolastir_vegrehajt()
{
echo a9999 logout >>$parancs
#cat $parancs
cat $parancs|telnet localhost 143
echo Horkolás
sleep 5
}
ja, két dolog:
mi novelles rendserzbőcs cináltuk, ha te cyrus-cyrus vagy, akkor feljegyezheted az eredet flag-ekeket, és csinálhatod így is
a scriptet a cyrus usernek kell futtatnia
- A hozzászóláshoz be kell jelentkezni
koszi, erre en is gondoltam, csak azt hittem, hogy lehet elegansabb modon is... :-)
- A hozzászóláshoz be kell jelentkezni
Sajat kerdesemre valaszolva:
a 3. es a 4. lepes koze be kellett szurnom egy 3,5. lepest amiben (nalam a /var/lib/cyrus/user/ alatt talalhato) seen adatbazist is at kellett masolni B-re es igy mar "works like a charm" ;-)
- A hozzászóláshoz be kell jelentkezni