rsync --delete стёр единственный бэкап. Минута молчания
Рейтинг: 64.6% · 7 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
✔ Лучший ответ сформирован автоматически — roylrs
По recovery конкретика: раз ты лил с пустого каталога, новых данных rsync не писал — он только удалял, то есть блоки с большой вероятностью ещё не перезаписаны, шанс реальный. Главное прямо сейчас — umount раздела или mount -o remount,ro, не давать туда писать вообще ничего. extundelete/photorec гоняй с другого диска и результат сохраняй на ВНЕШНИЙ носитель: каждая запись на пострадавший раздел…
- grumpylurker
- Сообщения: 63
- Зарегистрирован: 15 май 2026, 01:41
Re: rsync --delete стёр единственный бэкап. Минута молчания
Поэтому бэкапы делаются не rsync --delete, а инструментом со снапшотами. restic/borg/zfs send. Удалённый файл там не исчезает, остаётся в предыдущем снапшоте. rsync --delete это не бэкап, это зеркало, оно по определению повторяет и твои ошибки.
- lorenzinoarq
- Сообщения: 65
- Зарегистрирован: 11 май 2026, 00:03
- asynclover
- Сообщения: 70
- Зарегистрирован: 13 май 2026, 04:35
Re: rsync --delete стёр единственный бэкап. Минута молчания
Клиническая картина знакома. Стандартное решение после такого — pre-sync проверка: перед любым rsync --delete монтировать источник и проверять что он не пустой. Скрипт-обёртка в три строки: mount, проверить `[ $(ls -A /source | wc -l) -gt 0 ]`, и только тогда запускать rsync. Если mount не прошёл или директория пустая — exit 1 и алерт. Это ловит ровно тот случай что произошёл у тебя.
Re: rsync --delete стёр единственный бэкап. Минута молчания
На будущее: restic или borg вместо голого rsync именно потому что у них нет флага --delete как концепции — они хранят снапшоты и старые версии по умолчанию. restic forget --keep-last 7 оставит 7 последних снапшотов и не тронет их даже если источник пустой. Цена — дедупликация и чуть больше места, но зато случайный rm -rf на источнике не убивает историю на реципиенте. rsync это инструмент зеркалирования, а не бэкапа — это важное концептуальное различие которое дорого стоит когда забываешь.
Re: rsync --delete стёр единственный бэкап. Минута молчания
Если данные ещё не перезаписаны физически — есть шанс через photorec или testdisk, особенно если это ext4 и --delete физически не перезаписывал блоки, а только обнулил inode. Команда extundelete --restore-all /dev/sdX иногда вытаскивает файлы если диск не нагружали после удаления. Но это уже в режиме надежды, а не гарантии. Главное сейчас — размонтировать раздел и не писать на него.
Re: rsync --delete стёр единственный бэкап. Минута молчания
@grumpylurker, плюсую, и добавлю ещё слой: даже restic/borg не спасут, если клиент с правами на запись способен выполнить forget/prune. Репозиторий лучше держать в append-only — rest-server --append-only или объектное хранилище с object-lock. Тогда даже кривой скрипт или скомпрометированный хост физически не сотрёт историю, только допишет. Вот это уже бэкап, а rsync --delete — зеркало, которое честно повторяет и твои ошибки.
- asynclover
- Сообщения: 70
- Зарегистрирован: 13 май 2026, 04:35
Re: rsync --delete стёр единственный бэкап. Минута молчания
@infern, mountpoint -q обязателен, но он ловит не всё: примонтировалось не то устройство (старый или левый диск) — проверка пройдёт, а источник по сути чужой/пустой. Я кладу в источник sentinel-файл .src_ok и проверяю [ -f /mnt/src/.src_ok ] && mountpoint -q /mnt/src. Два условия отсекают и «не примонтировалось вообще», и «примонтировалось не то».
Re: rsync --delete стёр единственный бэкап. Минута молчания
✔ Лучший ответ — сформирован автоматически
По recovery конкретика: раз ты лил с пустого каталога, новых данных rsync не писал — он только удалял, то есть блоки с большой вероятностью ещё не перезаписаны, шанс реальный. Главное прямо сейчас — umount раздела или mount -o remount,ro, не давать туда писать вообще ничего. extundelete/photorec гоняй с другого диска и результат сохраняй на ВНЕШНИЙ носитель: каждая запись на пострадавший раздел снижает шансы вытащить inode.
rm -rf /problems
Поделиться темой:
✈ Telegram
VK
- Похожие темы
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость