In Transmission-GTK gibt es eine Option zum Ausführen eines Skripts:Bearbeiten > Einstellungen > Herunterladen > Skript aufrufen, wenn Torrent abgeschlossen ist.
Kürzlich fand ichdieses Skriptdass ich nicht weiß, wie ich es unter Transmission zum Laufen bekomme. Laut Programmbeschreibung schaltet das Skript das System nicht ab, aber es kann Transmission beenden, nachdem alle Torrents fertig sind. Das reicht mir, weil ich "ausschalten" Zu "Schließen der Übertragung" von &&
.
Könnt ihr mir jetzt helfen, dieses PHP-Skript unter Transmission auszuführen?
Dies ist ein vom Skriptautor erwähntes Beispiel:
php.exe Transmission_Quit.php --port=9999 --hostname=192.168.0.1
; was bedeutet das?! Wie soll ich es verwenden? Soll ich es auf " verweisen?Skript aufrufen, wenn Torrent abgeschlossen ist"-Option direkt?
Antwort1
Ich lasse dies hier, um auf die ursprüngliche Frage einzugehen, in der es um die Ausführung eines bestimmten PHP-Skripts geht. Im Abschnitt „Neues Rezept“ wird jedoch ein Workaround bereitgestellt, um das Hauptproblem zu lösen.
Bitte versuchen Sie dies und teilen Sie uns Ihr Ergebnis mit. Anschließend kann diese Antwort geändert oder gelöscht werden:
Zu einem bestimmten Zeitpunkt werden Sie möglicherweise nach Ihrem Passwort gefragt.
- Lassen Sie uns zunächst eine Datei mit dem Namen script.php erstellen, indem Sie sie in ein Terminal einfügen
sudo gedit script.php
(denken Sie daran, dass Sie diese Datei in jedem beliebigen Ordner ablegen können, für Testzwecke reicht jedoch Ihr Home-Ordner aus). - Kopieren/fügen wir in die Datei den Inhalt des von Ihnen erwähnten Skripts ein. Speichern Sie die Datei und schließen Sie sie.
Geben wir der Datei nun die richtigen Dateiberechtigungen und auch die Ausführungsberechtigung, indem wir die nächsten beiden Zeilen in einem Terminal einfügen, jeweils eine Zeile nach der anderen.
sudo chmod 755 script.php
sudo chmod a+x script.php
Installieren wir nun php5-cli, indem wir es in ein Terminal einfügen
sudo apt-get install php5-cli
und warten, bis das Terminal den Installationsvorgang abgeschlossen hat.
Sobald php5-cli
es installiert ist, können wir das Skript testen, indem wir es php script.php --port=9999 --hostname=192.168.0.1;
in einem Terminal aufrufen. Besser ist es jedoch, wenn Sie dies innerhalb von Transmission tun.
php5-cliist ein Befehlszeileninterpreter für die Skriptsprache PHP5 und eignet sich zum Ausführen von PHP-Skripten auf diese Weise. Es ähnelt eher der Datei php.exe für Windows, auf die Sie sich in Ihrer ursprünglichen Frage beziehen.
Ich hoffe, Sie haben Erfolg, aber teilen Sie uns bitte Ihre Ergebnisse mit, damit wir die entsprechende Unterstützung bieten können, oder löschen Sie diese Antwort, wenn sie nicht hilfreich ist.
Nachtrag
Nachdem ich Ihre Kommentare gelesen habe, gebe ich Ihnen dieses Fast-Food-Rezept für das PHP-Skript.
Zunächst muss ich einige Dinge zum Beispiel des Skriptautors erklären:
script.php --port=9999 --hostname=192.168.0.1;
--port=9999
= 9999 ist ein Beispiel-Port, aber in dieses Feld sollten Sie dieselbe Portnummer eintragen, die Sie auf der Registerkarte „Webclient“ definieren.--hostname=192.168.0.1
= Muss die IP des Geräts sein, von dem Sie möchten, dass das Skript ausgeführt wird, um den Übertragungsprozess zu beenden.
Dies lässt mich vermuten, dass der Prozess remote aufgerufen werden kann, aber in unserem speziellen Fall werden wir die Standardwerte verwenden, sodass wir weder den Port noch den Hostnamen angeben müssen. Indem wir die script.php
Datei einfach in einem Terminal ausführen oder per Übertragung aufrufen, werden die Standardwerte verwendet, die für unseren Computer gelten ( localhost
).
Dann lass uns Fast Food kochen:
- Wir brauchen eine Datei, nennen wir sie bye.sh, und platzieren sie irgendwo. Zu Testzwecken eignet sich Ihr Home-Ordner gut.
- Fügen Sie den nächsten innerhalb der Datei ein (Fast-Food-Skript hier), speichern Sie es, schließen Sie es und erteilen Sie ihm Ausführungsberechtigungen. (Weitere Informationen finden Sie in dieser Antwort.)
- Stellen Sie es dann innerhalb der Registerkarte „Download“ Ihres Transmission bereit, achten Sie jedoch darauf, dass Sie die richtige Datei bye.sh einschließen, die aufgerufen werden soll, wenn der Download abgeschlossen ist.
Das ist es.Ich muss erklären, dass das PHP-Skript irgendwie erfolgreich ist, aber es eine kleine Verzögerung nach Abschluss der Downloads beobachtet und ich habe es gerade mit 2 kleinen Torrent-Dateien getestet. Ich kann nicht sagen, ob die Verzögerung zunimmt, wenn die Liste länger oder die Downloadgröße größer ist, ein Verhalten, das von der New Recipe-Formel nicht beobachtet wird. Die PHP-Datei gibt Ihnen jedoch die Garantie, dass sie auf jedem PHP-fähigen Betriebssystem ausgeführt wird und mein New Recipe ist hauptsächlich für Linux-basierte Systeme gedacht, es funktioniert auf Ubuntu und kann auf anderen Distributionen, Debian- oder Ubuntu-basiert, erfolgreich sein und bestimmte Änderungen werden es ermöglichen, dass es auf anderen nicht auf Debian/Ubuntu basierenden Distributionen erfolgreich ist.
Viel Glück!
Neues Rezept
OK, ich habe für diesen Fall ein neues Rezept, ich gebe zu, es hat meine ganze Aufmerksamkeit erregt, auch wenn ich Transmission nicht so oft verwende.
Das Rezept
Zutaten
- transmission-gtk (irgendwie installiert, aus der Software-Tasche, dem Terminal usw.)
- Transmission-CLI (sudo apt-get install Transmission-CLI, Passwort eingeben, warten, bis die Installation abgeschlossen ist.)
- Das Drehbuch. (separat gekocht)
Vorbereitung
- Bereiten wir unsere Übertragung vor, um Webclientanfragen von außen zu empfangen. Auf diese Weise können wir überwachen, was in unserem Programm geschieht. Öffnen wir Transmission und gehen zur Registerkarte „Web“, um das Kontrollkästchen „Webclient aktivieren“ zu aktivieren, wie im nächsten Screenshot gezeigt.
(Standardwerte reichen vollkommen aus)
- Öffnen wir unseren bevorzugten Texteditor, um eine Datei mit dem Namen zu erstellen
byebye.sh
und den folgenden Inhalt darin zu platzieren. (Siehe das SkriptHier)
Suchen wir nun die Datei bybye.sh und erteilen ihr die entsprechenden Ausführungsberechtigungen, indem wir sie in ein Terminal ziehen sudo chmod a+x bybye.sh
oder die Dateieigenschaften in Nautilus eingeben und das Kontrollkästchen „Ausführen der Datei als Programm zulassen“ in den „Berechtigungen“ aktivieren, wie im nächsten Screenshot gezeigt.
- Nachdem wir das Skript ausgehändigt haben, können wir es installieren. Geben Sie
transmission-cli
in einem Terminal Folgendes ein:sudo apt-get install transmission-cli
, drücken Sie die Eingabetaste und geben Sie Ihr Kennwort ein. Anschließend wird die Software installiert.
Zeit zum Verkosten
Geben Sie in einem Terminal transmission-remote --list | sed '1d;$d' | grep -v Done | wc -l
Folgendes ein: Die Ergebnisse können von Fall zu Fall unterschiedlich sein, abhängig von der Menge der Torrents, die ausstehen oder gerade heruntergeladen werden. Wenn die Ergebnisse anders sind, 0
sind wir auf dem Weg. Wenn Sie etwas erhalten 0
und etwas heruntergeladen wird oder in der Warteschlange ist, müssen Sie das Rezept von Anfang an überprüfen. Wenn Sie eine Fehlermeldung erhalten, hinterlassen Sie diese bitte in einem Kommentar, um Unterstützung zu bieten.
- Wenn alles gut geht, weisen wir Transmission jetzt an, das Skript jedes Mal auszuführen, wenn ein Torrent abgeschlossen ist.BERUHIGE DICH!Bitte, bleiben Sie ruhig ... das Skript wird jedes Mal ausgeführt, wenn ein Torrent vollständig heruntergeladen ist, löst aber die Aktion zum Beenden der Übertragung nur dann aus, wenn das Downloadergebnis Null ergibt. Diese bedingte Vorgehensweise gibt uns die Gewissheit, dass die Übertragung nicht bei jedem Download beendet wird. Ein Screenshot ist für Ihre Bequemlichkeit bereitgestellt:
Und voilà! Das Rezept kann in großzügigen Portionen und zusammen mit all Ihren Downloads serviert werden. Die Übertragung wird erst beendet, wenn der letzte Download erfolgreich war.
EINIGE WARNHINWEISE
Wenn Transmission nur eine ausstehende Aktion hat und der Download genau in dem Moment abgeschlossen wird, in dem die Software geöffnet wird, wird Transmission geschlossen, sobald es geöffnet wird.
Glossar:
killall -9 transmission
= Schließt die Übertragung sanft, so dass Sie nicht bei jedem Schließen eine Fehlermeldung erhalten. Durch einfaches Verwenden killall transmission
wird die Übertragung grob geschlossen, so dass die Software einen Schließfehler meldet.
Stellen Sie jetzt beim Servieren des Rezepts unbedingt ein Glas mit ausgezeichnetem kubanischen Rum für mich auf den Tisch und …
Viel Glück!