Ok .. karena tidak ada yang menjawab, saya sudah berhasil ..
Karena kami memiliki banyak email, dan menyebar ke beberapa folder, kami perlu memisahkan yang ada di database dan yang tidak.
Pastikan Anda menyalin ini ... er .. folder data rusak ke folder lain. Jadi, jika terjadi kesalahan, Anda selalu dapat menyatukannya kembali.
Jadi langkah pertama, tentu saja shutdown zimbra
service zimbra stop
lalu salin database mysql yang sudah lama berfungsi ke zimbra yang tidak berfungsi.
cp /mnt/mail/db/* /opt/zimbra/db -R
Sekarang, kita perlu membandingkan surat-surat itu di ~ / store di cadangan Juli, dibandingkan email di ~ / toko dalam menjalankan zimbra. Kemudian saya memindahkan setiap email yang tidak pada bulan Juli ke folder lain yang sesuai di / opt / backup. Skrip di bawah ini adalah untuk memindai semua .msg yang tersedia di semua toko dan volume, dan pindah ke folder lain. Simpan skrip ini di bawah ini yaitucompare.sh
SOURCE=/opt/zimbra/store/0
DESTINATION=/opt/backup
COMPARE=/mnt/mail/store/0
for f in $SOURCE/*;
do
echo "scanning folder ${f##*/}";
for v in $f/msg/*;
do
comp=$COMPARE/${f##*/}/msg/${v##*/}
dst=$DESTINATION/${f##*/}
if [ ! -d $dst ]; then
echo "create $dst"
mkdir $dst;
fi
echo "comparing volume $v to $comp"
if [ -d $comp ] ; then
for m in $v/*; do
if [ ! -f $comp/${m##*/} ]; then
echo "move $m to $dst"
mv -b $m $dst
fi
done
else
echo "move $v/* to $dst"
mv -b $v/* $dst
fi
done;
done;
Pastikan Anda memodifikasi variabel SOURCE, COMPARE dan DESTINATION untuk membuat mirror folder Anda sendiri.
SUMBER: Saat ini menjalankan folder toko zimbra
TUJUAN: Di mana Anda ingin file-file Anda yang hilang dipindahkan
MEMBANDINGKAN: Di mana cadangan zimbra Anda yang lama berada, yang Anda gunakan basis datanya.
Kemudian chmod a+x compare.sh
untuk membuatnya dapat dieksekusi kemudian ./compare.sh
untuk menjalankannya.
hasilnya adalah / opt / backup / 1 ke / opt / backup / xx di mana xx adalah toko kotak surat. Semua pesan yang dipindahkan ke / opt / backup / x tidak ada di kotak surat asli, dan akan ditambahkan.
Jadi sekarang kita memiliki 2 folder. /opt/backup/xx
yang berisi file tidak dalam database, dan /opt/zimbra/
yang sebagian besar harus identik/mnt/mail/
Mulai Zimbra kembali
service zimbra start
Sekarang, kita perlu mendapatkan semua kotak surat
mysql "zimbra" -e"select id,comment from mailbox"
Sisanya mudah, kita hanya perlu menelepon CreateFolder dan addMessage seperti ini untuk melampirkan kembali surat-surat yang hilang:
zmmailbox -z -m <[email protected]> cf "/Inbox/Recovered"
zmmailbox -z -m <[email protected]> am "/Inbox/Recovered" "/opt/backup/<xx>"
sebagai contoh:
Katakanlah kita sudah dari langkah 2 di atas
+ ---- + -------------------------------------------- -------- +
| id | komentar |
+ ---- + -------------------------------------------- -------- +
| 1 | [email protected] |
| 2 | [email protected] |
+ ---- + -------------------------------------------- -------- +
Kami harus menambahkan pesan-pesan itu sebagai:
zmmailbox -z -m [email protected] cf "/Inbox/Recovered"
zmmailbox -z -m [email protected] am "/Inbox/Recovered" "/opt/backup/1"
zmmailbox -z -m [email protected] cf "/Inbox/Recovered"
zmmailbox -z -m [email protected] am "/Inbox/Recovered" "/opt/backup/2"
Jangan ragu untuk mengubah / Kotak Masuk / Dipulihkan untuk apa pun yang Anda suka.