Ошибка UID SORT: полезный скрипт для поиска битых писем в давкоте. но вроде давкот сами пишет каки еписьма битые при индексации
скрипт для поиска битых писем давкот и удаление индексов с перестройкой и удаление битых писем.
Предистория такая. посыпался диск с почтой (рейда естественно нет) восстановил остатки с помощью rsync и в папке оказались битые письма. когда заходишь в roundcube то индекс не полные и ругается типо Ошибка сервера: UID SORT: Internal error occurred. Refer to server log for more information. [2025-08-11 09:43:19] (0.040 + 0.000 + 0.039 secs).
вот оказались битые письма. скриптик для поиска и удаления битых писем и перестрйоке индексов
#!/bin/bash
# === НАСТРОЙКИ ===
USER_MAIL_DIR="/mnt/mail/domen.ru/user@domen.ru"
USER_EMAIL="user@domen.ru"
# Лог
LOGFILE="/tmp/fix-user-$USER_EMAIL.log"
echo "Чистим почту для: $USER_EMAIL ($(date))" > "$LOGFILE"
# === 1. Поиск и удаление битых писем в cur/ ===
echo "🔍 Ищем битые письма в $USER_MAIL_DIR/cur/" >> "$LOGFILE"
find "$USER_MAIL_DIR/cur" -type f -name "*S=*" | while read file; do
declared=$(echo "$file" | grep -o 'S=[0-9]*' | cut -d= -f2 2>/dev/null)
if [ -z "$declared" ]; then continue; fi
actual=$(stat -c%s "$file" 2>/dev/null)
if [ -z "$actual" ]; then continue; fi
# Если реальный размер < 80% от заявленного — удаляем
threshold=$((declared * 8 / 10))
if [ $actual -lt $threshold ]; then
echo "❌ Подозрительное письмо: $file"
echo " Заявлено: $declared, Реально: $actual (<80%)" >> "$LOGFILE"
rm -f "$file" && echo " [УДАЛЁН] $file" >> "$LOGFILE"
fi
done
# === 2. Удаляем индексы пользователя ===
echo "🧹 Чистим индексы..." >> "$LOGFILE"
rm -f "$USER_MAIL_DIR"/dovecot.*
# === 3. Пересоздаём индексы ===
echo "🔄 Пересоздаём индексы для $USER_EMAIL..." >> "$LOGFILE"
doveadm index -u "$USER_EMAIL" INBOX >> "$LOGFILE" 2>&1
doveadm index -u "$USER_EMAIL" "*" >> "$LOGFILE" 2>&1
# === Готово ===
echo "✅ Почта для $USER_EMAIL почищена и пересоздана." >> "$LOGFILE"
echo "📄 Лог: $LOGFILE"
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!