Kurze Frage bitte wegen Telnet / FTP

    • Kurze Frage bitte wegen Telnet / FTP

      Nachdem ich mit einen größeren USB-Stick zugelegt habe wurden von mir die Dateien vom einen auf den anderen mittels Filezilla kopiert.
      Dabei gingen natürlich die Datum/Zeit Angaben verloren. Ich möchte aber die gleiche Reihenfolge haben.
      Jetzt schreibe ich mir ein Visual Basic Programm, welches per FTP den Befel zum Ändern von Datum/Uhrzeit (touch -d) für jeden einzelnen File macht.
      Aber ich bin mir nicht sicher, ob ich das so einfach umsetzen kann.
      Daher meine Frage: kann ich, nachem ich eine Verbindung zur Box mittels IP-Adresse hergestellt habe, mittels FTP Befehl diesen touch-Befel einfach so an die Box schicken?
      Ich vermute ja, aber ich frage sicherheitshalber.

      Und noch eine Frage bitte: gibt es bei Linux so etwas wie einen Batch-Befehl unter Windows? Also das mehrere Befehle hintereinander gesendet werden?

      Danke im Voraus.

      aus Rund ums Board nach Allgemeine Fragen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Joey () aus folgendem Grund: Beitrag nach Allgemeine Fragen verschoben

    • Alternative: Ich hatte mir Filezilla genau wegen Änderungsdatum auch immer ein Problem: Seit langem nutze ich WinSCP; damit funzt es auch ohne "Nachbearbeitung". Vielleicht willst du das ja mal testen.
      Yamp - Musicplayer mit Artist-Art-Hintergrund und "Karaoke Light"- aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • Danke.
      Aber das war nicht meine Frage, oder habe ich mich schon wieder mal unklar ausgedrückt? Sorry, eine Schwäche von mir.

      Zur genaueren Erklärung:
      Wenn ich z.B. mit Putty arbeite und dort einen Befehl eingebe, wird der dann als ganz normaler FTP-Befehl abgesetzt?
      Denn genau das möchte ich mit meinem VB Programm auch tun: verbinden zur IP-Adresse der Box und danach einen FTP-Befehl senden.
      Denn wenn Putta ganz einfach einen FTP-Befehl abschickt, kann ich das auch ausprogrammieren.
      Zwar vermute ich, dass das funktionieren wird, wollte es aber nur einmal hinterfragt haben.
    • die bash kennt auch den touch Befehl, dafür benötigt es kein FTP oder Visual Basic ...
      mit touch -t YYMMDDHHmm <file> kann man den Zeitstempel ändern

      touch <file> erstellt eine neue leere Datei, falls die Datei nicht existiert

      Quellcode

      1. root@dm900:/tmp# touch testfile
      2. root@dm900:/tmp# stat testfile
      3. File: 'testfile'
      4. Size: 0 Blocks: 0 IO Block: 4096 regular empty file
      5. Device: 1ah/26d Inode: 12813 Links: 1
      6. Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
      7. Access: 2025-12-30 13:33:18.311484980 +0100
      8. Modify: 2025-12-30 13:33:18.311484980 +0100
      9. Change: 2025-12-30 13:33:18.311484980 +0100
      10. Birth: -
      11. root@dm900:/tmp# touch -t 1305220431 testfile
      12. root@dm900:/tmp# stat testfile
      13. File: 'testfile'
      14. Size: 0 Blocks: 0 IO Block: 4096 regular empty file
      15. Device: 1ah/26d Inode: 12813 Links: 1
      16. Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
      17. Access: 2013-05-22 04:31:00.000000000 +0200
      18. Modify: 2013-05-22 04:31:00.000000000 +0200
      19. Change: 2025-12-30 13:33:31.854210996 +0100
      20. Birth: -
      21. root@dm900:/tmp#
      Alles anzeigen

      das "batch" file nennt sich unter linux script, d.h. wenn du verrätst wie du was ändern willst, lässt sich das einfach direkt auf der Box ohne FTP, Visaul Basic etc. erledigen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Danke schön, wieder einmal sehr ausfühlich.

      Warum möchte ich VisualBasic verwenden:
      Es sind 759 Dateien, deren Namen ich in einen Textfile geschrieben habe, sortiert nach dem Datum, welches ja beim Runterkopieren mit dem Datum und Uhrzeit eingetragen wurde. Somit habe ich die richtige Sortierung. Und genau diesen File möchte ich jetzt abarbeiten. Heißt: mit der richtigen Reihenfolge kriegt jeder File ein Datum aufsteigend. Also erster File in meiner sortierten Liste bekommt jetzt das Datum 01.01.2020, der zweite 02.01.2020 usw.
      Wenn ich 759 Mal das eingeben muss, bin ich am verzweifeln.
      So möchte ich das meinem Programm überlassen: erste Zeile (erster Dateiname) auslesen und dann in der Box Datum ändern, nächste Zeile (zweiter Dateiname), Datum um 1 erhöhen und wieder Befehl absetzen.
      Händisch ist mir das bei der Menge an Dateien viel zu viel, daher schreibe ich mir ein Programm dafür. Und das liest mir die Dateinamen (bereits richtig sortiert) aus, nimmt ein Datum und trägt es dann ein.
      So macht die ganze Arbeit mein Programm.
      Außerdem macht mir Programmieren Spaß und das Hirn rostet nicht ein. In meinem Alter muss man Brain sowieso immer wieder herausfordern, damit es fit bleibt :D
    • das ginge auch per shell script und macht auch Spaß und hält auch fit ;)

      Welche Dateien sind das genau? Aufnahmen? Config files?
      Die Aufnahmen hätten den originale "Timestamp" im Dateinamen - zumindest mit der default enigma2 Aufnahmebenennung:

      "YYYYMMDD HHMM - Servicename - Titel - Description.eit/.ts(.ap/.cuts/.meta/.sc)

      Aus diesem Dateinamen kann man zumindest den Timer Start filtern und dann den Zeitstempel entsprechend setzen

      aus z.B.
      "20221211 2015 - Servicename - Titel - Description.eit/.ts(.ap/.cuts/.meta/.sc)

      würde dann
      touch -t 2212112015 "20221211 2015 - Servicename - Titel - Description".*
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

    • wenn du die Daten lokal von Device A nach Device B im terminal mit cp oder rsync mit den entsprechenden Optionen kopiert hättest, hättest du das problem jetzt gar nicht, weil die Datei Attribute dann erhalten bleibenj - was von ext4 auf NTFS über Filezilla natürlich nicht der Fall ist

      z.B. EMC kann auch eine .mp4.meta lesen - diese könntest du per script automatische erstellen, dann bleiben die Metadaten in der .meta erhalten
      die ts.meta oder ts.meta muss so aufgebaut sein - einzele Zeilen können auch leer bleiben

      Quellcode

      1. Service Reference
      2. Title
      3. Short Description
      4. Recordtime in sec. since 1.1.1970
      5. Tags
      6. Length
      7. Filesize
      8. Servicedata



      die "Recordtime in sec. since 1.1.1970" kann man in der Shell umrechnen

      z.B: 2020-01-01 12:43

      Quellcode

      1. root@dm900:/tmp/test# date -d "2020-01-01 12:43" +%s
      2. 1577878980
      3. root@dm900:/tmp/test#

      1577878980 wäre dann der Zeitstempel in Zeile 4 für die mp4.meta für "2020-01-01 12:43"
      die Filezise liese sich in der Shell auch einfach auslesen

      um aus diesem Datum in Sekunden den Zeitstempel für den touch Befehl in der shell umwandeln:

      Quellcode

      1. root@dm900:/tmp# date -d@1577878980 +%y%m%d%H%M
      2. 2001011243
      3. root@dm900:/tmp#

      das ergäbe dann touch -t 2001011243 <file> in einem script

      Möglichkeiten gäbe es also eine Menge für dein Vorhaben, aber ich würde eher das Augenmerk darauf ausrichten, dass du dir das das nächste Mal ersparst ;)
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

    • Vielen lieben Dank für die ausführliche Antwort.

      Leider zu spät, das hätte ich vorher wissen müssen.
      Leider kämpfe ich momentan mit Visual Basic. Das verbindet sich zwar, aber ich schaffe es momentan noch nicht, den Befehl abzusetzen.
      Gibt es bitte einen Linux-Befehl, der mir auf der Box sofort erscheint? So wie z.B. "Hello World"?
      Dann tu ich mir leichter mit dem Austesten.
    • Ich möchte die Meldung am Fernseher sehen, dann dann weiß ich, ob das mit Visual Basic funktioniert.
      Danke schön

      Naja, ich hätte bitte die Meldung auf dem Fernseher angezeigt bekommen.
      Mit dem echo Befehl bekomme ich es ja nur im Putty-Fenster.
      Gibt es überhaupt so eine Möglichkeit?
    • nochmal (um "overkill" zu verhindern): Willst du es nicht einfach mal mit WinSCP statt filezilla versuchen?
      Yamp - Musicplayer mit Artist-Art-Hintergrund und "Karaoke Light"- aktuelle Version V3.3.2 hier, bitte beachten: FAQ hier

      Wissen ist eins der wenigen Güter, das sich durch Teilen vermehren lässt .... :thumbsup:
    • ich befürchte, dass du ein wenig zu "kompliziert und umständlich" denkst - also der Web über Visual Basic, FTP etc. ist gar nicht notwendig


      hier mal ein ganz einfacher Ansatz wie das in der shell zu lösen wäre - natürlich sind noch Anpassungen nötig - das ist ein rudimentären 23 Zeilen script ...

      Startdatum DATE ist der 2020-01-01 01:00 in Sekunden
      die for Schleife liest zeile für Zeile der Textdatei ein, rechnet DATE in Sekunden gespeichert in der Variable TOUCH_DATE um, ändert das Datum der Datei auf den Inhalt Variable TOUCH_DATE
      rechnet zur Variable DATE 86400 Sekunden (=24 Stunden) hinzu und geht zur nächsten Ziele in der Textdatei

      wie gesagt, nur zur Veranschaulichung, wie "einfach" man das in der shell bzw. per script lösen könnte
      sag Bescheid wenn du tiefer willst


      Ausgabe des scripts

      Quellcode

      1. root@dm900:~# /tmp/changetime.sh
      2. Dateien in /tmp/test:
      3. -rw-r--r-- 1 root root 0 Dez 30 15:15 'aaa zzz.ts'
      4. -rw-r--r-- 1 root root 0 Dez 30 15:15 'bbb ggg.mp4'
      5. -rw-r--r-- 1 root root 0 Dez 30 15:15 ccc.ts
      6. -rw-r--r-- 1 root root 0 Dez 30 15:15 ddd.ts
      7. -rw-r--r-- 1 root root 0 Dez 30 15:15 fff.mp4
      8. Dateien in /tmp/test/filelist:
      9. aaa zzz.ts
      10. bbb ggg.mp4
      11. ccc.ts
      12. ddd.ts
      13. fff.mp4
      14. Ändere das Datum von 'aaa zzz.ts' auf 'Mi 1. Jan 01:00:00 CET 2020'
      15. Ändere das Datum von 'bbb ggg.mp4' auf 'Do 2. Jan 01:00:00 CET 2020'
      16. Ändere das Datum von 'ccc.ts' auf 'Fr 3. Jan 01:00:00 CET 2020'
      17. Ändere das Datum von 'ddd.ts' auf 'Sa 4. Jan 01:00:00 CET 2020'
      18. Ändere das Datum von 'fff.mp4' auf 'So 5. Jan 01:00:00 CET 2020'
      19. Dateien in /tmp/test:
      20. -rw-r--r-- 1 root root 0 Jan 1 2020 'aaa zzz.ts'
      21. -rw-r--r-- 1 root root 0 Jan 2 2020 'bbb ggg.mp4'
      22. -rw-r--r-- 1 root root 0 Jan 3 2020 ccc.ts
      23. -rw-r--r-- 1 root root 0 Jan 4 2020 ddd.ts
      24. -rw-r--r-- 1 root root 0 Jan 5 2020 fff.mp4
      25. root@dm900:~#
      Alles anzeigen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

    • Ja, aber ist es dafür nicht zu spät?
      Denn ich habe ja das Original-Erstellungsdatum nicht mehr.
      Das ist doch beim Kopieren verloren gegangen und die Dateien am alten Stick sind bereits gelöscht.
      Aber das Programm werde ich auf jeden Fall versiuchen.

      edit:
      Uups, Antwort von Fred nicht gesehen, werde ich mir in einer halben Stunde zu Gemüte führen. Vermutlich hast Du eh die Lösung, nur telefoniere ich im Moment mit einem Freund und kann es mir nicht ansehen.
    • das war nur die Ausgabe meines scriptes zur "Veranschaulichung"

      und ja, ich hätte vermutlich schon eine (Backup) shell script Lösung falls es dir zu viel wird oder es nicht so klappt wie du das möchtest - vielleicht noch an der einen oder anderen Stelle anzupassen

      Aber ich will dir nicht den Spaß verderben ;)

      Am Ende kannst du nicht viel kaputt machen, solange du die Dateien nicht löscht - das Datum kannst du ja immer wieder ändern

      Tipp
      fange mit einem Ordner mit 3-5 Dateien an
      wenn das mit diesen Dateien funktioniert, funktioniert es vermutlich auch mit allen anderen
      du musst nur aufpassen falls die Dateinamen Leerzeichen oder Umlaute enthalten, das könnte dann etwas komplizierter werden, da muss man in einem Shell Script auch in die Trickkiste greifen :D
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox