Beiträge von Apop85

    Hofei hab mal etwas nach dem Buch gegoogelt. Auf https://www.python-forum.de/viewtopic.php?t=37253 kannst du die Forenmitglieder damit anscheinend an die Decke treiben ^^ . Da wird klar davon abgeraten dieses Buch zu kaufen (Siehe Link) .

    Da wird jedoch das Python Cookbook uneingeschränkt empfohlen. Kann über den link frei über github aufgerufen/heruntergeladen werden, voraussetzung halt dass man Englisch einigermassen beherrscht. Find aber für Anfänger wie mich fehlt da irgendwie eine Einleitung in das ganze (Z.B. das klassische Hello World!). Das erste Kapitel fängt gleich damit an eine Sequenz in einzelne Variablen zu packen. Aber als weiteres Nachschlagewerk bei spezifischen Problemen sicher nicht schlecht so vom ersten Eindruck her.

    Nö passt schon :) Kann schon rauslesen was du meinst.

    Das mit dem cat hab ich übersehen ^^ läuft natürlich wie von dir beschrieben.

    Danke für den Tipp mit touch. Muss am Ende jedoch > zum überschreiben nutzen da >> eine neue Zeile schrieben würde welche ich ja nicht brauche.

    Habs jetzt mal entsprechend umgeschrieben

    Hab testweise mit if ( $anzahl = $counter ); then... probiert, da hab ich dann jedoch eine Fehlermeldung erhalten (Zeile 22: 0: Kommando nicht gefunden.). Woran liegt das? Bzw wie unterscheidet sich die Verarbeitung von (( Test )) und ( Test )?

    Danke für die Tips :)

    1. Wird damit sozusagen die Priorität des Tests definiert oder was passiert bzw kann passiern wenn man die mischt? Wie nennen sich die? Dann kann ich mal danach suchen und mich mal etwas besser darüber informieren.

    Wenn ich counter=$(<cat /home/pi/logs/update.log) verwende kriege ich folgendes raus:

    /home/pi/scripts/updatecheck.sh: Zeile 8: cat: Datei oder Verzeichnis nicht gefunden

    2.&4. gut zu wissen. Also kann ich Variablen direkt als Zahl definieren wenn ich sie in Rundklammern setze? Nützlich =) Danke

    5. Kannst du mir kurz erläutern was du mit "log initialisieren" meinst? Da hab ich eh noch ein Problem. Wenn die Logdatei, aus welchem Grund auch immer, leer ist hab ich da beim auslesen einen Syntaxerror. Hab mich da gefragt ob ich den irgendwie auffangen kann? Hab auch daran gedacht einfach kein File anzulegen wenn counter=0 bzw das vorhandene log zu löschen. Oder halt wenn counter=anzahl gar keine änderung vorzunehmen was die SD-Karte wohl am meisten schonen würde, auch wenn das schreiben einer Zahl alle 24h ja nicht grad das Ende der Welt bedeutet.

    a. ^^ nagut dann halt Microschrott Windows :P .

    b. Mag sein, das war jedoch vor mehr als 14 (Susi 4.2 wars glaub damals) und 6 Jahren (Ubu) ^^ damit müssen wir uns wirklich nicht mehr beschäftigen ^^

    Das hatt ich halt noch im Hinterkopf weswegen ich ohne nachzudenken direkt nach dem ersten Setup einen reboot alle 24h im crontab verankert hab. Das hatte nichts mit irgendwelchen (aktuellen) Problemen zu tun.

    Aber mal back 2 topic... :rolleyes:

    Einige bzw teilweise alle Fragen aus Beitrag 1, 3, 7 und 8 sind noch offen.

    Hm wie passend. Hab grad bemerkt dass die Log nach jedem reboot leer ist, die Variabel counter darin also nicht gespeichert wird. Wolltest du mich da drauf ansprechen als du gefragt hast ob im log bereits was drin steht (Beitrag 4)? Wenn ich das Script ohne Reboot teste funktioniert es einwandfrei. Habe ich da im Script also noch etwas vergessen oder einen grundliegenden Fehler gemacht?


    Das Log bzw die Variabelcounter übernimmt eigentlich die selbe Aufgabe wie bei apticronDIFF_ONLY="1"

    Unter Windoof, Suse und Ubuntu habe ich die Erfahrung gemacht dass spätestens nach 4-7 Tage das System nur noch langsam lief und vermehrt Fehler verursachte. Natürlich waren die entsprechenden Systeme nicht dazu gedacht so lange am Stück zu laufen, wie bereits gesagt da fehlt mir schlichtweg die Erfahrung.

    Und das mit der Uptime versteh ich schon. Da jedoch nur ich auf mein Netzwerk zugreiffe und die reboots nur dann stattfinden wenn ich normalerweise schlafe stören mich die paar sekunden Downtime ja nicht.

    Aber werde mich mal da rein lesen. Hab bereits einige Aussagen gefunden die von regelmässigen Reboots abraten da dies anscheinend Probleme auch triggern kann. Gibts da spezielle "Problemzonen" oder lässt sich das verallgemeinern? Da ich grad viel am probieren bin mit dem Pi habe ich teilweise mehrere reboots pro tag und hatte bisher noch keine Probleme bemerkt. Oder war das mehr Glück als Verstand? ^^

    Hey meigrafd.

    Wie kommst du darauf dass ich damit irgendwelche Probleme lösen will :-/ ? Das ist einfach meine Erfahrung die ich bisher mit diversen Systemen gemacht habe, dass ein reboot nie verkehrt ist. Kann ja sein dass das mit Raspberry anders ist, da fehlt mir die Erfahrung und lasse mich auch gerne eines besseren belehren.

    Ich hatte die Idee weil mir gesagt wurde man soll mit update/upgrade vorsichtig sein da es durchaus schon vorkam dass gewisse Anwendungen danach nicht mehr ordnungsgemäss funktionierten.

    Und bei der Logdatei geht es mir nur darum dass ich nicht x mal über das selbe Update informiert werde. Es reicht ja wenn ich die Meldung einmalig erhalte (Zeile 22). Und das Log war die erste Idee die ich hatte um Variablen nach dem Reboot wieder abzurufen...

    Und nein in der Log muss nichts drin stehen. Ist die Log leer, besitzt falschen Inhalt oder ist schlicht nicht vorhanden wird einfach eine 0 für den counter geschrieben.

    Und danke für den Tipp mit apticron. Schau mir das gleich mal an.

    Danke ^^ die hab ich natürlich auch gesehn. Daher hab ich "nur letzteres" geschrieben da im Wiki nur immer von upgrade und Paketen geschrieben wird, Paketlisten werden da nicht erwähnt. Aber ist halt nicht explizit beschrieben und wird anfangs mit apt-get verglichen welches ja beides kann, ist also eher ne Verständnisfrage :).

    Hey Leute :)

    Hoffe ihr hattet einen gemütlichen Weihnachtsabend.

    Ich hab mir mal aus Lernzwecken ein Script geschrieben welches mich über anstehende Updates informiert. Das klappt soweit ganz gut, nur frage ich mich wie ich den Code noch optimieren/verschönern kann?

    Es wird alle 24h nach einem Reboot ausgeführt.

    Auch bin ich mir nicht ganz sicher ob aptitude sowohl Paketlisten und Updates abruft oder nur letzteres. Evt kann mir da jemand Auskunft geben?

    Ich hab auch noch nach einer Möglichkeit gesucht die Namen der Pakete auszulesen die geupdated werden sollen, hab da jedoch nichts gefunden. Gibt es da eine Möglichkeit dies mit einfachen Befehlen oder Pipes auszulesen (Also nicht gleich ein Script für sich)?

    Die Namen möchte ich dann mit einer selbst erstellen Liste von Paketen vergleichen welche z.b. für FTP, VPN, PiHole ect verwendet werden. Falls ein oder mehrere Namen übereinstimmen möchte ich mir eine entsprechende Warnung zukommen lassen damit ich erst ein Backup erstellen kann oder dies evt sogar selbstständig ausgelöst wird, da überleg ich noch ob das Sinnvoll ist.

    Bitte dazu noch nichts spoilern ;) möchte mich da selber rantasten. Sollte ich bezüglich auslesen und vergleichen der Liste noch Fragen haben werde ich mich melden ;).

    Grüsse Apop.

    Hab mal noch ne Anleitung für Neueinsteiger geschrieben die ein Identisches Setup wie meines anstreben.

    Also mit PiHole, VPN, DNScrypt, FTP und Backup

    Diese Anleitung ist wirklich für Einsteiger gedacht und beschreibt die einzelnen Schritte step by step. Alle von mir dazu verwendeten Anleitungen sind darin ebenfalls verlinkt.

    Grüsse Apop

    EDIT: Bei 3.2 war noch ein Fehler drin (IPv6) hab diesen noch korrigiert.

    Ok habs.

    Die Variabel die ich gesucht hab war $common_name ^^ habs die ganze zeit mit echo in ein log getestet aber hab da nie was erhalten. Hab die variabel nun in den curl befehl für die Telegrammessage eingebunden und nu ist es so wie gewünscht.

    Code: /etc/openvpn/server.conf
    # Am Ende von server.conf eingetragen
    script-security 2
    client-connect /path/to/script.sh
    Bash: /path/to/script.sh
    #!/bin/bash
    curl -s -k "https://api.telegram.org/botBotID/sendMessage" -d text="VPN-Verbindung wurde hergestellt! Benutzer: $common_name." -d chat_id=ChatID
    exit 0

    Danke an alle für die Hilfe und die Tipps =)

    p.s. kann ich den Thread verschieben? Ist ja bei python inzwischen fehl am platz ^^

    p.p.s. rein aus Neugierde... warum habe ich mittels echo in ein logfile (echo $common_name >> path/to/log.txt) die Variabel nicht auslesen können? Nutzte das oft bei Batchdateien zum debuggen von grösseren "Scripten" oder als Activitylog

    Gemäss Wiki müsste es ja so gehen:

    Code
    script-security 2
    auth-user-pass-verify /path/to/script via-env

    Script Security 2 reicht ja um den Usernamen zu übermitteln. Passwort brauch ich ja nicht. Doch kann ich mich mit so nicht mehr auf dem Server einloggen.

    Ich schätze mal ich mach hier einen grundliegenden Fehler... trozdem hier mal das openvpn-log:

    Zitat von openvpn.log

    Fri Dec 22 21:54:06 2017 123.45.67.89:98765 TLS Error: Auth Username/Password was not provided by peer

    Fri Dec 22 21:54:06 2017 123.45.67.89:98765 TLS Error: TLS handshake failed

    Hier habe ich gelesen dass client-connect eigentlich schon IP und "common name" als Variabel übergeben würde. Mit echo $username kann ich diesen jedoch nicht abrufen.

    Wenn ich das Manual richtig verstanden habe müsste in der conf dann folgendes stehen:

    Code
    script-security 2
    client-connect /path/to/file.sh 

    und der Benutzername könnte danach mit $username abgerufen werden? In dem Manual fehlen leider einige Beispiele für mein Verständnis.

    EDIT: Das Ausführen rein mit client-connect /path/to/file.sh funktioniert schon mal problemlos (Was auch schon fast zu erwarten war ^^)

    EDIT2: Hab nun div Kombinationen durchprobiert aber kriegs ned hin. Sobald ich auth-user-pass-verify nutze kann ich mich nicht mehr einloggen. Aber die Funktion benötigt ja eigentlich noch ein Script zum ausführen. Ich brauch ja aber nur die Variabel username beim anmelden aber kein Script welches die Anmeldung an sich übernimmt. Suche mal weiter. Evt komm ich ja noch drauf ^^

    Ok mit den Hinweisen bin ich jetzt sicher mal ne Weile beschäftigt ^^.

    Einzige Frage noch: ist das mit dem übergen in eine txt sinnvoll/nötig bei den Frickler-Pipes? Jetzt wäre ja der Ablauf etwas anders als im initialen Post beschrieben


    1. VPN Verbindung wird hergestellt
    2. Script wird ausgeführt
    3. kopiert log in txt (Falls überhaupt nötig?)
    4. liest clientname in variabel aus mittels Frickler-Pipes
    5. Text + Variabel wird per Telegram übermittelt.