Cyrus migracio (MEGOLDVA)

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:

  1. bejelentkezik A-ra (adminkent), lementi az ACL-t, quota-t stb.
  2. bejelentkezik B-re (adminkent), letrehozza a mailboxot
  3. rsync-kel attolja A-rol B-re a konkret leveleket (gyakorlatilag az egesz konyvtarat atmasolja, tehat index, cache, stb fajlokat is
  4. B-n csinal egy reconstructot, majd beallitja az ACL-t, quota-t stb.
  5. 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.

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

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" ;-)