Hallo zusammen, ich versuche ein Skript zu schreiben, mit dem ich Dateien auf einem Server verschieben oder löschen kann. Mein Kodi läuft auf der Nvidia Shield, also Android. Mein erster Gedanke war, dies über SSH zu realisieren und die Datei direkt auf dem Server zu verschieben bzw zu löschen. Dieser Ansatz scheint im Grunde in Ordnung zu sein, aber ich treffe auf Probleme die wohl mit der Architektur von Android zusammenhängen. Ich bin nicht in der Lage, aus einem Kodi-Skript auf SSH zugreifen. Habt ihr Ideen, was ich hier machen könnte oder würdet ihr einen komplett anderen Ansatz vorschlagen?
Danke
Code
import os, xbmc, xbmcgui, xbmcvfs, time
import subprocess
dialog = xbmcgui.Dialog()
dialog.ok('new Version', 'starting._..')
# Add Termux's bin directory to PATH
termux_path = "/data/data/com.termux/files/usr/bin"
os.environ["PATH"] += os.pathsep + termux_path
# Now try running the SSH command
test_command = "ssh -i /data/data/com.termux/files/home/.ssh/id_rsa -o BatchMode=yes butters@lucy -p 542 'echo Authentication successful'"
result = subprocess.run(test_command, shell=True, capture_output=True, text=True)
log_file_path = "/sdcard/Android/data/org.xbmc.kodi/files/.kodi/temp/ssh_log.log"
with open(log_file_path, "w") as logfile:
logfile.write("STDOUT:\n")
logfile.write(result.stdout + "\n")
logfile.write("STDERR:\n")
logfile.write(result.stderr + "\n")
logfile.write("Return Code:\n")
logfile.write(str(result.returncode) + "\n")
if result.returncode == 0:
print("SSH command executed successfully.")
dialog.ok('new Version', 'Key-based authentication works')
else:
print("SSH command failed. Check the log for details.")
dialog.ok('new Version', 'SSH command failed. Check the log for details: \n' + result.stderr)
Alles anzeigen