Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2015-06-15

torrent

Сто лет назад, году эдак в 2003, контора купила мне laptop. Экран 15 дюймов, Pentium-M, 512 мегабайт оперативки, вайфай и все такое. Русско-китайский Ровер.
Он успешно переваривал рабочие задачи, пока в моду не вошла виртуализация. На это его ресурсов уже никак не хватало.
Я его забрал домой и приспособил, со временем, под домашний серверок, работающий 24/365. Веб-аппликухи, торренты и прочая херня. Работает до сих пор, ТТТ.

Так вот, поскольку внутри у машинки HDD, по нынешним меркам, смешной, гигов 40, что-ли, под торренты был приспособлен внешний диск. USB.
Сначала это был самсунговский коробанчик 2.5 дюйма, 600 с чем-то гигабайт. Через года три он сдох от такой тяжелой жизни (24/365).
Тогда я взял списанный трехдюймовый SATA WD, воткнул его в док типа такого:
HDD 2.5"+3.5" SATA AgeStar SUBT

Проработал он полгода, после чего док сдох. Скорее всего, блок питания.
Тогда я купил за 700 рублей коробок-переходник SATA-USB типа такого:
HDD 3.5" SATA AgeStar SUB302

Неделя прошла, пока работает. Конструктивный недостаток у коробайки один: не предусмотрена вентиляция для платы контроллера HDD. От слова «вообще». Так что диск может перегреться.

Так вот, зачем я все это рассказываю. Пока я возюкался с восстановлением хранилища для торренто-качалки, я подключал в качестве временного решения три разных диска. И, в итоге, случилась рассинхронизация между содержимым диска и списком торрентов.
Пришлось решать задачу синхронизации: найти и удалить с диска файлы, которые не упомянуты в обслуживаемых торрентах.

Представляю скрипт на Python, размером в 200 строк, написанный за один день (даже меньше, что как-бы подтверждает миф про норматив 200 строк кода в день). В скрипте используются только модули os, re. При этом он парсит torrent файлы, находит там имена файлов данных и синхронизирует два списка файлов – из торрентов и найденных на диске.





original post http://vasnake.blogspot.com/2015/06/torrent.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)