Der Code-Schnippsel-Thread


  • Kleines Script zum prüfen, ob neue Beiträge im WHF vorhanden sind (benötigt natürlich das Login-Cookie):

    Kann man sicher auch ein hübsches KDE-Widget draus bauen. Man könnte jetzt als Bonus noch anzeigen, WELCHE Beiträge neu sind, das könnte ich auch noch reinsetzen :D

    Hat jemand ne Ahnung, wie ichdas Skript auf Opera zum laufen bekomme? Ich komme nicht an den Cookie


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • Dummerweise benutzt Opera weder ein übliches Datenbank-Format wie SQLite noch besitzt es standardmäßig über eine Funktion zum Export von Cookies. Seine Datenstruktur stammt noch aus Delphi-Win16-Tagen. Ohne einen externen Konverter (oder einen anderen Browser, der Operas Profile importieren kann :trollface: ) geht da nichts.


  • Spoiler anzeigen


    Etwas verbessertes Backup-Skript. Allerdings kommt er nicht mit $TARGET2 klar. Bei Ausführung bekomme ich diesen Fehler

    Spoiler anzeigen
    Code
    rsync: link_stat "/mnt/LAN/Sicherung" failed: No such file or directory (2)
    rsync: mkdir "/home/tobias/Doku/Monatsbackups/Backup-12-2012" failed: No such file or directory (2)
    rsync error: error in file IO (code 11) at main.c(595) [Receiver=3.0.7]
    rsync: connection unexpectedly closed (9 bytes received so far) [sender]
    rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (17. Dezember 2012 um 21:13)

  • So mein Code hat jetzt erstmal nen Workaround, bis ich ne Lösung für mein Problem habe. (Siehe voriger Beitrag)

    Spoiler anzeigen


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (17. Dezember 2012 um 21:14)

  • So jetzt vorerst endgültige Fassung für mein Backup-Skript.

    Wenn jemand ne Idee hat, wie ich mein Log-Problem löse (lokale Mail bein Erfolg oder Misserfolg des Backups.), der möge sie mir bitte mitteilen.)



    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • Mal n bisschen mit funktionen gespielt.

    Habe das Skript allerdings noch nicht testen können.


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (20. Dezember 2012 um 11:55)


  • Wird ja inzwischen richtig schön das Script :)
    Ich kann es heute Abend mal testen, wenn du möchtest.

    OK. Mein Problem ist halt, dass ich sowohl beim Fehlschlagen, als auch beim erfolgreichen Durchlauf ne (lokale) Mail bekommen soll, was mit dem vorigen Skript nicht machbar war. Momentan werden die Funktion log() scheinbar mehrere Mails gesendet. Das muss ich noch fixen. Mal schauen wie ich das anstelle.


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • Hat einer von euch ne Idee, wie ich die Log-Funktion zum laufen bekomme?


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • Mal ganz davon abgesehen davon, die Existenz von VCS wie z.B. Git ist dir bekannt?

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“


  • Hat einer von euch ne Idee, wie ich die Log-Funktion zum laufen bekomme?

    Du musst deinen Code noch mal umschreiben. So erfasst $EXIT nur den Rückgabewert von date bzw. sogar die Wertzuweisung an $TMPLOG, die beide natürlich immer erfolgreich ablaufen. Und selbst wenn du den Code hinter die letzte Backup-Zeile schiebst, wird immer noch der Rückgabewert von tee anstatt rsync erfasst.

    Bash (#!/bin/bash) bietet dir dafür das Array PIPESTATUS an, das dir ermöglicht, auf alle einzelnen Rückgabewerte der Befehle in einer Pipe zuzugreifen.

    Selbst dann bekommst du aber eine Erfolgsmeldung, wenn dein erstes Backup fehlschlägt und das zweite nicht. Du musst beide Rückgabewerte in Betracht ziehen:

    Code
    rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG; RSYNC1_RET=${PIPESTATUS[0]}
    rsync -avu $SOURCE /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/ |tee -a $LOG >> $TMPLOG; RSYNC2_RET=${PIPESTATUS[0]}
    
    
    if [ $RSYNC1_RET -eq 0 -a $RSYNC2_RET -eq 0 ]; then ...; else ...; fi
  • Du musst deinen Code noch mal umschreiben. So erfasst $EXIT nur den Rückgabewert von date bzw. sogar die Wertzuweisung an $TMPLOG, die beide natürlich immer erfolgreich ablaufen. Und selbst wenn du den Code hinter die letzte Backup-Zeile schiebst, wird immer noch der Rückgabewert von tee anstatt rsync erfasst.

    Bash (#!/bin/bash) bietet dir dafür das Array PIPESTATUS an, das dir ermöglicht, auf alle einzelnen Rückgabewerte der Befehle in einer Pipe zuzugreifen.

    Selbst dann bekommst du aber eine Erfolgsmeldung, wenn dein erstes Backup fehlschlägt und das zweite nicht. Du musst beide Rückgabewerte in Betracht ziehen:

    Code
    rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG; RSYNC1_RET=${PIPESTATUS[0]}
    rsync -avu $SOURCE /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/ |tee -a $LOG >> $TMPLOG; RSYNC2_RET=${PIPESTATUS[0]}
    
    
    if [ $RSYNC1_RET -eq 0 -a $RSYNC2_RET -eq 0 ]; then ...; else ...; fi


    Merci. Konnte deinen Code erfolgreich implementieren. Danke :)


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • So mein Code sieht nun so aus:

    Vielen Dank noch mal an DosAmp, der mch auf die Lösung gebracht hat.


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (29. Dezember 2012 um 11:49)

  • Weil ich auf die Schnelle keinen Download für Window Hidie mehr finden konnte, habe ich aus meiner C-Programmiersucht heraus ein kleines Tool geschrieben, das das manuelle Ein- und Ausblenden von Fenstern unter Windows erlaubt. :D

    Code
    C>windowtoggle /?
    Interactive tool for toggling a window's visibility.
    
    
    windowtoggle [/V]
    
    
      /V         Only show visible windows.

    Ich habe auch eine ANSI-Version gebaut, aber noch funktioniert diese nicht ganz zufriedenstellend unter Windows 9x. ;)

    Gegebenfalls bastele ich da noch eine minimale GUI mit Visual C++ rundherum.

  • hust ... hab gerade mal ein kleines Feuerwerk mit debug für DOS gebastelt ;)

    und in eine ausführbare datei bekommt ihr es so ... kopiert alle zeilen des codes in eine txt datei, abspeichern und unter dos dann das hier eingeben

    Code
    debug <dateiname.txt

    schon habt ihr eine feuer.com und schönes buntes geflacker auf dem bildschirm ...

    Have fun

    X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

    Früh aufstehen ist der erste Schritt in die falsche Richtung.

    Uri Geller verbiegt Löffel. Na und, Maggi macht Knoten rein!

    Ich bin im WH Forum seit dem 11.05.2003 ... wow

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!