Script unter Linux: FML

  • Grüezi miteinander

    Nachdem ich vor ein paar Monaten bei meinem Ausflug nach Ubuntu beinahe einen Herzinfarkt eingefahren habe, und eigentlich alles was Linux beinhaltet als Hexenwerk geistig auf dem Scheiterhaufen verbrannt wurde, holt mich die Vergangenheit nun doch noch einmal ein (die Sau).

    Kollege hat mich (der Typ der Ahnung von Computer hat.... und Freizeit.... und keine Selbstachtung.... und kein Erhaltungstrieb....) gefragt, ob ich ihm folgendes irgendwie zurechtbasteln kann:
    - Auf einem Server läuft irgendwas Linuxiges, Verbindung generell nur per SSH, das Zeuchs läuft also nur in der Konsole.
    - Es gibt drei Ordner, nennen wir diese der Einfachheit halber: Eingang, Ausgang, Mülleimer
    - Es soll ein Script geschrieben werden, welches im Ordner "Eingang" alle Files nacheinander durchgeht (inkl. potenziellen Unterordnern) und rausfindet, ob diese im Ordner "Ausgang" vorhanden sind. Dabei soll nur auf den Dateinamen vor der Endung geachtet werden.
    - Ist bereits ein gleichnamiges File vorhanden, so wird dieses von "Eingang" in den "Mülleimer" verschoben. Ist es nicht vorhanden wird, je nachdem ob es sich in einem definierten Unterordner oder im Ordner selber befindet mit unterschiedlichen Parametern, ein Videokonvertierungsdingsbums gestartet, dass ein entsprechendes Ausgabefile im Ordner "Ausgabe" erzeugt, danach wird das Ursprungsfile wiederum in den "Mülleimer" verschoben.

    Am Ende müsste also der Ordner "Eingang" leer sein und von allen Files im "Mülleimer" ein konvertiertes im "Ausgang" existieren.
    Das Script soll endlos laufen, aber immer nur eine Konvertierung aufs mal stattfinden.

    Ich hab zwar eine Linux-Shell-Script-Megabibel vom Kollegen hier, hasse aber nur schon die Tatsache, dass man sich wieder mit den verschiedenen Distros, Shells und ScheissDieWandAn rumschlagen muss :steinigung:

    Jemand irgend eine unterstütztende Idee ausser Alkohol und Auswandern ? :topmodel: unter Windows wäre die Sache nett für einen regnerischen Nachmittag, aber Linux ?! BÄÄÄÄHHHHH ich schnall schonmal die Ordnerstrukturen nicht wirklich und zudem seh ich nirgends irgendwelche Dateiendungen :mauer::bonk::topmodel::gadget::(

  • Hast dir ja mit Kotzbuntu die "beste" Distribution rausgesucht :D Da kann nur alles schief gehen. Das ist fast so, als würde man Windows 95 in ner Beta als Server-OS verwenden. :topmodel:
    Als Server-OS gerade für Einsteiger eignet sich OpenSuSE bestens, da mit YaST ein mächtiges Tool zur Administration zur Verfügung steht und man damit das System sehr leicht konfigurieren kann.
    Für das Synchronisieren von Dateien gibts glaub ich sogar nen Tool, was nur ausführen braucht.
    Eventuell bist du schon mit dem Standard-Tool "rsync" gut bedient.
    Übrigens sind "Dateiendungen" für Linux nur Schall und Rauch. Wichtige Informationen über eine Datei werden in den Metadaten der Inodes gespeichert, soweit ich mich erinnern kann.
    Auch das Rechtemanagement von Windows ist für Linux kaum eine Hürde...

    "Du bist und bleibst a Mensch und du kannst eben net deine menschlichkeit überwinden."

    Dennis_50300

    Einmal editiert, zuletzt von CryptonNite (13. Mai 2013 um 08:35)

  • Das Rechtemanagement von Linux ist für Windows auch keine Hürde, wennst dort einen entsprechenden Filesystemtreiber hast. Gilt für alle Systeme.. Ist das System offline, ist die Sicherheit beim Teufel, wenn nicht grade verschlüsselt wurde.

    Ich würd mir auch Mal rsync ansehen, wenn das deinen Anwendungsfall nicht abdecken sollte, könnten wir natürlich schon auch ein Script dafür bauen denke ich. So schwer klingt deine Anforderung ja nicht direkt.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Das Rechtemanagement von Linux ist für Windows auch keine Hürde, wennst dort einen entsprechenden Filesystemtreiber hast. Gilt für alle Systeme.. Ist das System offline, ist die Sicherheit beim Teufel, wenn nicht grade verschlüsselt wurde.

    OFFTOPIC
    Das ist wohl war, allerdings ists von Linux nach Windows deutlich einfacher als umgekehrt, da die Treiber für MS'sche Dateisysteme meist schon im Kernel vorhanden sind. Verwendet man aber unter Linux z.B. btrfs, dann siehts für Windows düster aus, denn da gibts scheinbar keinen Treiber. Für EXT3/4 gibts nen Treiber, der das System als EXT2 einhängt. Ist aber ein gewisser Parameter gesetzt, so kann dieser Treiber das System entweder gar nicht oder nur read-only einhängen, somit sind dann keine Änderungen von außen möglich.
    Für ReiserFS gabs mal nen Viewer, aber der geht glaub ich mit neueren Versionen leider nicht mehr.
    Als Austauschmöglichkeit bietet sich nach wie vor entweder FAT32 oder neuerdings auch NTFS an, da die Treiber ausgereift sind.

    "Du bist und bleibst a Mensch und du kannst eben net deine menschlichkeit überwinden."

    Dennis_50300

  • Danke für die ersten Inputs, ich muss mich in aller Ruhe mal einen Moment hinsetzen und mir die Sache, gerade mit diesem rsync, anschauen.

    Zitat

    Hast dir ja mit Kotzbuntu die "beste" Distribution rausgesucht

    Als seit-Kindheit-Windows-User war und ist Linux für mich ein Buch mit sieben Siegeln, da schnappt man sich mal schnell den nächsten Rockzipfel vom Kollegen und der meinte, Ubuntu sei der heilige Gral... :rolleyes: naja... mittlerweile weiss ich auch, dass er das Ding nur zum Surfen und Briefe schreiben braucht, nicht ganz das was ich als "Erfahrung" verbuchen würde.

  • Is ja wurscht jetzt. Falls wir in der Tat eine scripted Lösung brauchen, ist es ziemlich egal welches Linux druntersitzt.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

  • Zwei Schritte nach vorne und einer zurück: Ich kann die Ordner und Files scannen und rausfinden, welche konvertiert werden müssen. Nur: Ich hab als Versuch Linux Mint auf ner Live Installation, die elendige Shell frisst aber keine Arrays, dann geht sofort wieder dieser verdammte Scheiss los vonwegen "welche Shell ?" Dash, Bash, Korn... was soll sowas ? Muss ich echt gezielt auf dem Zielsystem basteln nur damit ich sicher sein kann, dass das am Schluss funktioniert ?
    Ich hasse Linux einfach abgrundtief, dauernd stolpert man über genau solchen elendigen Mist :grr:

  • Du kannst einfach sh scripten, das läuft dann auch unter Bash (meist ist sh sowieso ein Link auf Bash).

    Generell kann man annehmen, daß so gut wie jedes Linux System heutzutage über eine Bash verfügt, das ist so der Quasi-Standard würde ich Mal sagen. sh sowieso. Selbstverständlich gibt es viele verschiedene Shells, die unterschiedliche Zwecke erfüllen können. Selbst in Windows hast zwei zur Verfügung: cmd und PowerShell..

    Ich weiß aber nicht, wofür du einen Array brauchst? Geh einfach den Folder schrittweise durch und vergleiche Schritt für Schritt? Wenn man's extrem primitiv macht, dann braucht man nicht Mal eine Rekursion (für die Einfachheit opfert man aber dann Leistung). Irgendwie so (tlw. ganz sicher fehlerhafter Code, müßte man ein wenig anpassen, läuft so wie es dasteht FIX nicht!):


    Wie gesagt, das oben habe ich grade blind zusammengestoppelt, das ist sicher primitiv und voller Fehler. Soll nur ein minimaler Anhaltspunkt sein, oder vielleicht ein Startpunkt.

    Edit: Ah, du hast inzwischen replied. ;) Wahrscheinlich ist eine Kombination von Script und rsync sowieso besser und viel sicherer, weil rsync auch veränderte Dateien erkennen kann, und nicht nur unterschiedliche Dateinamen.

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"

    2 Mal editiert, zuletzt von GrandAdmiralThrawn (13. Mai 2013 um 21:22)

  • Danke für dein Script :) Linux Mint verwendet standardmässig Dash oder wie der Mist heisst, muss explizit auf Bash verwiesen werden ;)

    Das Script läuft sogar bereits soweit, das Array ist schönheitshalber und dient der Definition der zu durchsuchenden Ordner... wobei ich da sowieso aktuell den Kopf schüttle... der Kollege will da gewisse Sachen "aus der Luft" erkennen, wie welches File konvertiert werden soll, muss den da mal ein wenig zurechtbiegen. Aus guten Ideen und warmer Luft entsteht noch kein logisches Programm.
    Mittlerweile macht mir das Script schon keine Sorgen mehr, nur eben der ganze Mist der da noch einfliessen soll :steinigung:

  • Coole Sache... ich arbeite im persistenten Bereich der Live Installation... nur werden die Daten darin anscheinend erst beim Runterfahren gespeichert. Da sich das Ding aber beim Aktivieren des WLANs verabschiedet hat war das dann wohl nichts.

    Leck mich für heute, ich habe genug von diesem oberkindischen Mist :adsh:

    Nachtrag: Der persistente Bereich funktioniert überhaupt nicht :spitze: nach einem Neustart ist einfach gnadenlos alles weg. Wobei ich beim bearbeiten sogar die Zugriffe aufs USB Memory sehen kann.
    Einfach nur ein blanker Dreck das ganze Zeuchs von hinten, vorne, oben, unten und auch von innen :mauer::D

    Einmal editiert, zuletzt von OutOfRange (13. Mai 2013 um 21:51)

  • So nach zwei Abenden und einigem an Googlen, Kopfkratzen und sich wundern läuft der Mist soweit :spitze:
    Schlussendlich hat der Kollege einen popeligen Atom als Server zur Verfügung gestellt, auf dem ich mich austoben darf.

    Was macht das Script nun konkret ?
    - Es gibt aktuell fünf Ursprungsordner, in denen noch nicht konvertierte Videofiles abgelegt werden (eigentlich sind es sechs, dazu mehr weiter unten).
    - Es gibt zwei Zielordner: In einen werden die konvertierten Videofiles abgelegt, in den anderen die Ursprungsfiles nach dem erfolgreichen konvertieren.
    - Dazu gibt es ein paar Parameter, da beim konvertieren eine individuelle Endung an die Datei angefügt wird.
    - Speziell ist zudem, dass eine Datei auch mehrmals mit verschiedenen Versionen erstellt werde kann. Dazu wird ein Parameter gesetzt, welcher die Datei nach erfolgreicher Konvertierung nicht in den entsprechenden Ausgabe- sondern einen weiteren Ursprungsordner kopiert.
    - Dazu wird auch geprüft, ob die Ordnerstruktur intakt ist (allenfalls werden diese erstellt) und die Vorgänge (ffpmeg z.b.) sauber 0 als Rückgabewert melden.
    - Das Script sucht nun alle Ursprungsordner ab, konvertiert alle nicht bereits bearbeiteten Files, verschiebt diese und beginnt nach einer Minute wieder von vorne. Somit kann der Kollege bei Bedarf einfach die Files auf seinen Server kopieren und irgendwann konvertiert das Script diese passend :)
    - Man möge mir die vielen \033[irgendwas verzeihen, ich wollte ein wenig Farbe in die Konsole bringen :topmodel:

  • Coole Sache, das Script ist nicht Mal so müllig wie ich es wohl gemacht hätte, schaut recht gut durchdacht aus, danke für den Code! :)

    1-6000-banner-88x31-jpg

    Stolzer Besitzer eines 3dfx Voodoo5 6000 AGP Prototypen:

    • 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700

    [//wp.xin.at] - No RISC, no fun!

    QotY: Girls Love, BEST Love; 2018 - Lo and behold, for it is the third Coming; The third great Year of Yuri, citric as it may be! Edit: 2019 wasn't too bad either... Edit: 2020... holy crap, we're on a roll here~♡!

    Quote Bier.jpg@IRC 2020: "Je schlimmer der Fetisch, desto besser!"