Ich denke, das sollte bei epg2vdr irgendwo in den Plugineinstellungen konfigurierbar sein. Wäre schön, wenn das eingebaut werden würde.
Blockaden durch epg2vdr (oder scraper2vdr)
-
-
es gibt verschiedene Ordner der /srv/epgd/tvsp wird vom epgd verwaltet (genauer dem tvsp Plugin) und m.E. auch aufgeräumt.
Das TVSP Pluigin ist von Christian: https://github.com/chriszero ggf. ihn mal fragen.
Ansonsten habe ich den Thread leider nicht komplett verfolgt und gerade keinen Überblick, ist sonst noch etwas offen und hat sich das mit den Ladezeiten geklärt?
Grüße Jörg
-
Da das epg2vdr Plugin ja nicht notwendigerweise auf dem gleichen Rechner läuft, wie der epgd scheint mir der Ort nicht sehr zielführend. Das müßte dann in den epgd, für die Bilder aus dem epg Download.
(=> daher cron für Server)
Die hier ehemals 400000 Links auf die epg-Bilder für den VDR-epg werden ja eigentlich auch bei jedem EPG-Update gelöscht (schreibt er zumindest ins Log). Nur halt irgendwie nicht vollständig, sodaß sich im Laufe der Zeit Leichen sammeln (=> Garbage-Collection am VDR-Client nötig).
Stefan
-
es kommt immer darauf an von welchem Odner wir sprechen, das mit den Links schaue ich mir gerade mit seahawk an.
Und ja diese werden bei einem reload (ausgelöst über das Menü oder per svdrpsend) komplett gelöscht.
Bleiben denn Links übrig für welche es keine Bilder mehr gibt?
-
Da das epg2vdr Plugin ja nicht notwendigerweise auf dem gleichen Rechner läuft, wie der epgd scheint mir der Ort nicht sehr zielführend. Das müßte dann in den epgd, für die Bilder aus dem epg Download.
(=> daher cron für Server)Mir ging es erst mal um die Bilder, die auf den Clients liegen geblieben sind. Bei den EPG-Bildern für epgd müsste das jeweilige Plugin aufräumen, wenn es sie nicht direkt in die Datenbank schreibt (wie es bei epgdata.com der Fall ist).
-
Ansonsten habe ich den Thread leider nicht komplett verfolgt und gerade keinen Überblick, ist sonst noch etwas offen und hat sich das mit den Ladezeiten geklärt?
Die "Lade"zeiten bedingten vermutlich die 395k Links auf 8000 Bilddateien in /var/lib/epgimages
Soweit ich ich da kurz durchgeguckt hatte, waren alle Links gültig. Habe aber noch ein Backup, wenn man über die IDs was klären kann.
Ich hatte während der Tests mal mehrmals "plug epg2vdr update" benutzt, um das Update-Delay (die 5 ms/Schleife) zu testen. Das hat also offenbar auch keine Links entfernt..
Stefan
-
Soweit ich ich da kurz durchgeguckt hatte, waren alle Links gültig. Habe aber noch ein Backup, wenn man über die IDs was klären kann.
Es gibt nach meiner Beobachtung keine toten Links - mit diesem Python3-Skript (benötigt das Paket python3-mysql.connector) kann man die JPEG-Dateien in /var/cache/vdr/epgimages/images/ mit den Einträgen in der imagerefs-Tabelle aus der Datenbank abgleichen lassen - es sollte die Dateien ausgeben, die nicht mehr in der imagerefs-Tabelle von epgd enthalten sind und damit keine Zuordnung zu einem Event haben:
Python
Display More#!/usr/bin/env python3 from contextlib import closing from pathlib import Path import mysql.connector as mariadb host="192.168.1.173" user="epg2vdr" password="epg" database="epg2vdr" mariadb_connection = mariadb.connect(host=host, user=user, password=password, database=database) with closing(mariadb_connection.cursor()) as c: c.execute("SELECT imagenamefs from epg2vdr.imagerefs") result = c.fetchall() image_names = {img for (img,) in result} for f in Path('/var/cache/vdr/epgimages/images/').glob('*.jpg'): if f.name in image_names: # print("keeping file", f.name) pass else: print("unused image", f.name) #f.unlink() # uncomment to delete files
-
Natürlich gibt es das Paket in Buster gerade nicht ...
Ich habe 439 überflüssige Bilder. Hmm...
Code
Display Moreunused image 5a0d4338f033af317ab37006.jpg unused image 546b739be4b03c03eae75d18.jpg unused image 5e26f5fe8189650c0916c02b.jpg unused image 54af5cfae4b0c0147076e0b4.jpg unused image 5e2401fe8189657b5c5aaa36.jpg unused image 5459c86de4b0f17a831827d3.jpg [..] unused image 5e3bd62081896554d2b6cafa.jpg unused image 5e04d2098189651399564c19.jpg unused image 5e27be3e8189650c0917aaf1.jpg unused image 563d7dcfea60e556a327fabe.jpg unused image 57040c7fea60e54d6563e060.jpg unused image 5e27a5ad8189650c09179f6d.jpg unused image 54519c3ae4b0d02df3ad5c0d.jpg unused image 5e27190d8189650c09171459.jpg unused image 563a15f9ea60e556a321d0ae.jpg
Auch wenn es mir - eigentlich - um die Links auf diese ging.
42
-
Auch wenn es mir - eigentlich - um die Links auf diese ging.
Dazu müsste man das Skript etwas erweitern - wenn du tatsächlich Dateien löschen willst, kannst du in Zeile 10 simulate = False setzen:
Python
Display More#!/usr/bin/env python3 from contextlib import closing from pathlib import Path import mysql.connector as mariadb host="192.168.1.173" user="epg2vdr" password="epg" database="epg2vdr" simulate = True def remove_file(f: Path): if not simulate: f.unlink() mariadb_connection = mariadb.connect(host=host, user=user, password=password, database=database) with closing(mariadb_connection.cursor()) as c: c.execute("SELECT imagenamefs from epg2vdr.imagerefs") result = c.fetchall() image_names = {img for (img,) in result} unused_images = set() for f in Path('/var/cache/vdr/epgimages/images/').glob('*.jpg'): if f.name in image_names: pass #print("keep image", f.name) else: print("delete unused image", f.name) unused_images.add(f) remove_file(f) for f in Path('/var/cache/vdr/epgimages/').glob('*.jpg'): if f.is_symlink(): try: t = f.resolve(strict=True) except IOError: print("dead symlink", f) remove_file(f) else: if t in unused_images: print("removing obsolete symlink", f) remove_file(f)
-
Das wäre dann (derzeit) das Ergebnis. Ich warte mal das nächste EPG-Update ab, ob was gelöscht wird.
42
-
Nach epgd Update gestern (die SQL-Fehler), haben heute auch die Links abgenommen:
48 ungenutzte Bilder, 72 ungenutzte Links.
Wäre also möglich, daß der Serverprozess die Ursache war. Behalte das mal im Auge...
Stefan
-
ansonsten solltet ihr auf Client Seite so was im Log finden (sofern der logLevel nicht < 1):
Code
Display Moreroot@gate (dev u=) ~/PLUGINS/vdr-plugin-epg2vdr> zgrep "Cleanup finished, removed" /var/log/vdr.log* /var/log/vdr.log.1:Feb 10 12:02:26 gate vdr: epg2vdr: Cleanup finished, removed (5657) images and (7026) symlinks /var/log/vdr.log.1:Feb 11 00:11:41 gate vdr: epg2vdr: Cleanup finished, removed (1542) images and (2604) symlinks /var/log/vdr.log.2.gz:Feb 9 11:41:16 gate vdr: epg2vdr: Cleanup finished, removed (1232) images and (2458) symlinks /var/log/vdr.log.2.gz:Feb 9 23:51:10 gate vdr: epg2vdr: Cleanup finished, removed (9276) images and (10779) symlinks /var/log/vdr.log.3.gz:Feb 8 11:27:49 gate vdr: epg2vdr: Cleanup finished, removed (18302) images and (20538) symlinks /var/log/vdr.log.3.gz:Feb 8 23:34:49 gate vdr: epg2vdr: Cleanup finished, removed (1388) images and (2596) symlinks /var/log/vdr.log.4.gz:Feb 7 23:04:50 gate vdr: epg2vdr: Cleanup finished, removed (380) images and (737) symlinks /var/log/vdr.log.5.gz:Feb 6 17:37:01 gate vdr: epg2vdr: Cleanup finished, removed (15402) images and (16402) symlinks /var/log/vdr.log.5.gz:Feb 7 05:42:46 gate vdr: epg2vdr: Cleanup finished, removed (1488) images and (2767) symlinks /var/log/vdr.log.6.gz:Feb 5 17:20:49 gate vdr: epg2vdr: Cleanup finished, removed (16325) images and (17328) symlinks /var/log/vdr.log.6.gz:Feb 6 05:27:14 gate vdr: epg2vdr: Cleanup finished, removed (1286) images and (2057) symlinks /var/log/vdr.log.7.gz:Feb 4 17:03:43 gate vdr: epg2vdr: Cleanup finished, removed (10968) images and (11983) symlinks /var/log/vdr.log.7.gz:Feb 5 05:09:58 gate vdr: epg2vdr: Cleanup finished, removed (1814) images and (2906) symlinks
Das immer dann wenn der VDR läuft und der epgd alle x Stunden das Abholen des EPG bei den externen EPG Daten beendet hat.
Bin mir gerade nicht sicher ob es ggf. eine Lücke gibt wenn der VDR zu diesem Zeitpunkt nicht läuft - muss ich mir im Code ansehen.
-
Also prinzipiell tat mein VDR das schon immer:
Code
Display Morevdr.log:Feb 10 06:44:15 roadrunner vdr: epg2vdr: Cleanup finished, removed (147) images and (371) symlinks vdr.log:Feb 11 01:59:05 roadrunner vdr: epg2vdr: Cleanup finished, removed (639) images and (1155) symlinks vdr.log.1:Feb 9 17:04:35 roadrunner vdr: epg2vdr: Cleanup finished, removed (286) images and (525) symlinks vdr.log.2.gz:Feb 8 13:34:27 roadrunner vdr: epg2vdr: Cleanup finished, removed (0) images and (0) symlinks vdr.log.2.gz:Feb 8 20:22:49 roadrunner vdr: epg2vdr: Cleanup finished, removed (2) images and (2) symlinks vdr.log.2.gz:Feb 9 03:15:57 roadrunner vdr: epg2vdr: Cleanup finished, removed (255) images and (448) symlinks vdr.log.3.gz:Feb 7 10:41:31 roadrunner vdr: epg2vdr: Cleanup finished, removed (261) images and (2142) symlinks vdr.log.3.gz:Feb 8 00:15:50 roadrunner vdr: epg2vdr: Cleanup finished, removed (3) images and (95) symlinks vdr.log.4.gz:Feb 6 07:09:17 roadrunner vdr: epg2vdr: Cleanup finished, removed (183) images and (555) symlinks vdr.log.4.gz:Feb 6 14:11:40 roadrunner vdr: epg2vdr: Cleanup finished, removed (180) images and (557) symlinks vdr.log.4.gz:Feb 7 03:47:55 roadrunner vdr: epg2vdr: Cleanup finished, removed (153) images and (425) symlinks vdr.log.5.gz:Feb 4 07:21:55 roadrunner vdr: epg2vdr: Cleanup finished, removed (246) images and (1957) symlinks vdr.log.5.gz:Feb 4 14:21:08 roadrunner vdr: epg2vdr: Cleanup finished, removed (135) images and (425) symlinks vdr.log.5.gz:Feb 5 10:40:58 roadrunner vdr: epg2vdr: Cleanup finished, removed (156) images and (1040) symlinks vdr.log.5.gz:Feb 5 17:34:24 roadrunner vdr: epg2vdr: Cleanup finished, removed (59) images and (188) symlinks vdr.log.5.gz:Feb 6 00:14:39 roadrunner vdr: epg2vdr: Cleanup finished, removed (6) images and (14) symlinks vdr.log.6.gz:Feb 3 18:12:49 roadrunner vdr: epg2vdr: Cleanup finished, removed (226) images and (987) symlinks vdr.log.6.gz:Feb 4 00:39:16 roadrunner vdr: epg2vdr: Cleanup finished, removed (72) images and (254) symlinks vdr.log.7.gz:Feb 2 15:03:04 roadrunner vdr: epg2vdr: Cleanup finished, removed (163) images and (2585) symlinks vdr.log.7.gz:Feb 2 17:22:51 roadrunner vdr: epg2vdr: Cleanup finished, removed (0) images and (44) symlinks vdr.log.7.gz:Feb 2 22:08:30 roadrunner vdr: epg2vdr: Cleanup finished, removed (88) images and (278) symlinks vdr.log.7.gz:Feb 3 04:34:31 roadrunner vdr: epg2vdr: Cleanup finished, removed (245) images and (3044) symlinks
Deshalb ist mir das mit den 400k Links ja auch nicht aufgefallen. Wenn die in ca. 3 Jahren Laufzeit gesammelt wurden hätte er trotzdem > 1000 Links pro Tag verlieren müssen. Scheint mir etwas unwahrscheinlich. Da müßte was anderes passiert sein. Nur was?
Mein VDR läuft natürlich nicht durch, der epgd schon.
Stefan
-
Moin,
seahawk1986 hatte noch eine super Idee! Es sind schlicht Links zu noch bestehenden Bildern für welche es jedoch kein Event mehr gibt. Dachte damals nicht das diese ins Gewicht fallen. Es gibt aber wohl genug ewig laufenden Serien für welche die Bilder ewig erhalten bleiben. Dann sammeln sich natürlich mit jeder Ausstrahlung Links an.
Das Cleanup ist nun so erweitert das Links gelüscht werden zu welchen es kein Event mehr gibt. Damit wurde hier einiges mehr gelöscht als die Tage davor:
CodeFeb 12 13:18:06 gate vdr: epg2vdr: Cleanup finished, removed (9682) images and (102249) symlinks Feb 12 07:08:37 gate vdr: epg2vdr: Cleanup finished, removed (1900) images and (3678) symlinks Feb 11 00:11:41 gate vdr: epg2vdr: Cleanup finished, removed (1542) images and (2604) symlinks
ist erst mal im dev branch und noch im Test , könnt ihr euch wenn ihr testen möchtet gern schon holen, dazu aber erst dem epgd aktualisieren und neu starten.
Vor dem Aufräumen mit der Erweiterung:Coderoot@gate~> l /var/cache/vdr/epgimages/|wc -l 149713 root@gate~> l /var/cache/vdr/epgimages/images/|wc -l 35673
danach:
Coderoot@gate~> l /var/cache/vdr/epgimages/|wc -l 68511 root@gate~> l /var/cache/vdr/epgimages/images/|wc -l 36374
Grüße Jörg
-
fix ist im git
-
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!