Последнее
время у меня творится какое-то сплошное SSDD (Some Shit - Different
Day) То ошибочный бан и лицемерие саппорта, то говно провайдер
ростелеком на сутки без сети оставляет, то вот сабж. И всё это одно
следует за другим без промежутков, как катящийся под откос товарный
состав.
КРАХ
30-го
дня сижу, никого не трогаю, изучаю тонкости sed, починяю в старом ПК
FDD 5.25". И тут внезапно tixati выдаёт ошибку, и перестаёт загружаться.
Оказывается, переполнился хомяк, и эта дура не придумала ничего лучше,
как выстрелить себе в голову и украсить папку бесполезными ошмётками
своей БД. В прошлый раз была обратная ситуация - у меня полетел винт, и я
лишился файлов, но остались раздачи в tixati, по ним выкачал всё
обратно. Потом купил не один, а сразу два 10Тб винта, собрал их в рейд, а вот бэкапы настроить забыл. Для этого по уму нужен отдельный сервер и отдельный ёмкий винт. Теперь видимо займусь. Вот бэкапы делаю теперь так:
# takeshot.sh #!/bin/bash if [ -e ~/.tixati/lock.dat ] then echo lock! exit else echo no lock! mkdir /.../Backs/tixati/$(date +%y%m%d-%H%M) rsync -av --info=progress2 --no-i-r ~/.tixati /.../Backs/tixati/$(date +%y%m%d-%H%M) fi
Казалось бы, что помешало просто
заморозиться, пока бы я не освободил место? Неужели некие дисковые
операции, которые программа решила предпринять, предварительно не
проверив, достаточно ли на диске места с запасом?
Первым
делом я загрузился с livecd флешки и перераспределил свободное место
между корнем и хомяком в некоторую пользу последнего. Сидел и трясся
два часа, как бы при конвертации до кучи не полетела у меня ext4 хомы.
Обошлось.
Я убил много часов в напрасных
попытках восстановить текущую базу, ведь у меня там было 1852 раздач! Но
программа убила себя качественно - текущие файлы уничтожены и стали
размером в несколько байт, а резервные копии, которые она
предусмотрительно делает, почему-то содержали не всё, а от силы 250-300
раздач. Откуда такая избирательность я не понимаю.
ВОССТАНОВЛЕНИЕ
Увы,
самый свежий бэкап оказался сделан ещё летом:
backup-2021-06-17-17-26-29.tixaticonfig. Пришлось откатываться на него, и
восстанавливать вручную все свои раздачи после этой даты. Ниже я опишу
как это делал.
Работа заняла дня четыре.
Сначала я составил план работ. Раздаваемое лежит у меня по
структурированным каталогам. Но как узнать, какие файлы в каталоге ещё
раздаются, а какие уже нет? Ведь tixati с закрытым исходным кодом и
закрытой БД, и я никак не могу узнать это и средствами самой программы.
Придется вручную всё сравнивать и по-новому скачивать .torrent файлы.
Чтобы
получить список раздач-кандидатов на повторную скачку, я отсортировал
каталоги и файлы по дате, и выбрал файлы и папки с датой после даты
бэкапа: 2021-06-17.
Теперь я открыл
историю "показать весь журнал" в firefox, выбрал весь период, и стал
вбивать в поиск названия фильмов и прочих раздач. Это сильно экономило
время. Иногда выскакивала ссылка прямо на .torrent файл, иногда
множество ссылок, если в первую дату скачивания я просматривал несколько
раздач, выбирая подходящую. В итоге найдя ту самую раздачу, что и файлы
в каталоге, сверяясь по количеству и размеру файлов, я ставил её на
закачку. В процессе было необходимо переименовать файлы.
Дело
в том, что у меня строгий принцип, как должны называться файлы в моей
коллекции. там должно быть название, в том числе оригинальное если кино
зарубежное, желательно имя режиссёра и год.
Вот
например в каталоге "Пуаро Агаты Кристи (Agatha Christie's Poirot
1989-2013)" содержатся файлы с такими именами: "s3e01Таинственное
происшествие в Стайлзе (The Mysterious Affair at Styles).mkv"
а релизер лепит не информативную хрень: "[A_warrior_of_light] Agatha Christie's Poirot 01 [BD 640x480 x264 AC3].mkv"
Полезной
информации тут только две цифры - номер эпизода. остальное избыточная
информация и тщеславие релизера. Крайне редко вы там увидите нормальные
имена файлов, поэтому я всегда переименовываю раздачи. Это
конечно сыграло со мной в этот раз злую шутку, и мне пришлось каждую
добавляемую раздачу приводить к тем именам, какие имеют уже скачанные
файлы. Иначе клиент начал бы выкачивать их заново, и у меня задвоилась
бы коллекция.
После завершения восстановления
раздач из каждого обрабатываемого каталога я проводил сравнительный
подсчёт, должный выявить, остались ли в каталоге файлы сироты без
раздач. Для этого я добавлял к имени каталога лишние символы, чтобы
tixati его потерял, например "123": /.../Movie/_horror123/. После этого
останавливал все раздачи и тут же стартовал их снова. Раздачи из
переименованного каталога отваливались в offline. Я брал их число и
сверял с количеством файлов (только прямо в каталоге, без учёта файлов в
субдиректориях) плюс каталогов. Ведь часть раздач идут не одним файлом,
а целым каталогом. Если суммы совпадали, я переходил к следующему,
иначе искал сирот. Нижнее подчёркивание в имени каталога (_horror) у
меня означает маркер жанровой папки, содержащей внутри несколько раздач.
Так можно отличить каталог с фильмами от каталога фильма. Просто
скачивать всё в одну не сортированную помойку я не приемлю.
Восстановил я таким образом где-то 272 или более раздач.
|