Posts by md_fg

    Hallo Rasfreak


    Bin durch Zufall auf das Thema gekommen läuft der unbound Server jetzt ?


    Bei mir läuft er bin nach einem Artikel aus der Raspberry Pi Geek 05-06/2017 Seite 48 vorgegangen.
    Die Konfiguration des Servers ist etwas anders als Dein Beispiel.
    Mein Server läuft auf 192.168.10.60 hier noch eine Abfrage im Privaten Netz.



    nslookup Bastel_RasPi
    Server: 192.168.10.60
    Address: 192.168.10.60#53


    Name: Bastel_RasPi.reform.md
    Address: 192.168.10.74
    #
    nslookup 192.168.10.74
    Server: 192.168.10.60
    Address: 192.168.10.60#53


    74.10.168.192.in-addr.arpa name = Bastel_RasPi.reform.md.

    Nachtrag


    Wenn ein RasPi als DNS und DHCP Server im Dauerbetrieb läuft und eine ramdisk für /var/log benutzt.
    Dann greift das Script varlog mit den start/stop Zweigen nicht.
    Es läuft der normale logrotate damit wird in /var/log/journal/xyz.. jeden Tag eine neue system@xyz.journal Datei angelegt.
    Je nach Größe der ramdisk ist nach ca. 1 Woche Schluss die ramdisk ist voll.
    Deshalb der neue Zweig daily im Script varlog
    Der daily Zweig in varlog wird nicht von cron sondern von einem Timer und Service unter systemd gestartet.


    Code
    1. daily)
    2.        echo "*** Start vom varlog Daily Zweig:"
    3.        /usr/bin/rsync -a --exclude "**~" --exclude "- user*" --exclude "- system@*" --delete /var/log/ /var/log_save/ > /dev/null
    4.        /bin/sync
    5.        sleep 2
    6.        /usr/sbin/logrotate /etc/logrotate_varlog.conf
    7.        sleep 2
    8.        rm /var/log/journal/8c5604e85c924195aef34a3e4079998d/system@*
    9.        echo 'Der Daily Zweig von varlog wurde Beendet' | systemd-cat -t varlog -p info
    10.    ;;



    Die Datei logrotate-daily.timer





    Die Datei logrotate-daily.service


    Code
    1. [Unit]
    2. Description=logrotate-daily.service
    3. [Service]
    4. ExecStart=/usr/local/bin/varlog daily

    Ein kleiner Nachtrag zum Tutorial Punkt 19.


    19.
    Um die system.journal.x.gz Datei zu einer Analyse wieder auszupacken benuzte ich den sik Zweig von varlog
    Das Script sik.sh zeigt alle system.journal.x.gz Dateien aus /var/archive/ an.
    Nach Eingabe der Datei Nr. 1 für die aktuellste Datei wird die ausgewählte Datei wieder entpackt.

    Code
    1. gunzip /var/archive/system.journal.$wn.gz
    2. mv /var/archive/system.journal.$wn /var/archive/system.journal


    Dann wird das system.journal auf Konsistenz geprüft.

    Code
    1. journalctl --verify -D /var/archive/


    Dann wird das system.journal auf Fehler geprüft.

    Code
    1. journalctl -p err -D /var/archive/


    Danch wird das system.journal auf Vorkommen von "varlog\|journal" geprüft.

    Code
    1. journalctl --file=/var/archive/system.journal | grep "varlog\|journal" -i


    Zum Schluss werden alle Einträge der aktuell ausgewählten system.journal Datei anzeigt.

    Code
    1. journalctl --file=/var/archive/system.journal


    Wenn in /var/archive/ schon ein system.journal liegt wird das vom Script erkannt und nach Abfrage gelöscht.

    Hallo


    Da mit dem aktuellen Jessi Kernel 4.4.34+ bzw. 4.4.50+ eine Abfrage mit

    Code
    1. systemctl --version


    Ein (systemd 215) als aktiv zeigt, kann das journal nicht mit dem Schalter "--vacuum-size=100M" auf 100 MB verkleinert werden.
    Das wird sich wohl erst mit der Version Stretch ändern.
    Für alle User die nicht sofort auf Stretch umsteigen wollen hier ein Vorschlag.
    Die Original Idee von meigrafd und Thomas mit dem Script varlog wird etwas erweitert und leicht verändert.


    Das Original


    Die Änderung:
    Im Start Zweig von varlog wird mit dem rsync Schalter --exclude "- *.journal"
    verhindert das ein system.journal aus /var/log_save/.. wieder nach /var/log/.. kopiert wird.
    Damit kann es in /var/log/.. keine system.journal~ Datei mehr geben.
    Es gibt nur das system.journal vom aktuellen Booten/Einschalten.
    Im Stop Zweig von varlog wird mit dem rsync Schalter --exclude "**~" --exclude "- user*"
    verhindert das ein möglicherweise Vorhandenes user-1000.journal bzw. system.journal~
    wieder nach /var/log_save/.. kopiert wird.


    Die Erweiterung:
    Um eine Analyse der system.journal Dateien aus /var/log_save/.. zu erreichen wird der logrotate Mechanismus benutzt.
    Dazu wird der logrotate.timer und der logrotate.service sowie die Datei logrotate_varlog.conf benutzt.
    Die Datei logrotate_varlog.conf wurde erstellt um Probleme mit dem normalen logrotate Dienst in Jessi zu vermeiden.
    Ein Test ist möglich mit

    Code
    1. sudo /usr/sbin/logrotate -v /etc/logrotate_varlog.conf


    Zum Ablauf:

    Code
    1. sudo /usr/local/bin/varlog stop


    Kopiert alles von /var/log/ nach /var/log_save/ -- Ausser der "user-1000.journal" bzw. "system.journal~" Datei.


    Code
    1. sudo /usr/local/bin/varlog start


    Kopiert alles von /var/log_save/ nach /var/log/ -- Ausser der "system.journal" Datei.


    2 Minuten nach jedem reboot/Einschalten wird vom logrotate.timer und dem logrotate.service
    Das system.journal aus /var/log_save/.. in das Verzeichnis /var/archive/ als system.journal.1.gz kopiert und gepackt.
    Im Moment werden die Dateien bis zur system.journal.7.gz behalten.


    Um die system.journal.x.gz Datei zu einer Analyse wieder auszupacken benuzte ich den sik Zweig von varlog

    Code
    1. sudo /usr/local/bin/varlog sik


    Das Script sik.sh zeigt alle system.journal.x.gz Dateien aus /var/archive an, die ausgewählte Datei wird entpackt und mit
    journalctl --verify geprüft.
    Dann wird mit journalctl -p err die Datei system.journal auf Fehler und danch auf Vorkommen von "varlog\|journal" geprüft.
    Zum Schluss werden alle Einträge der aktuell ausgewählten system.journal Datei anzeigt.


    Wenn in /var/archive/ schon ein system.journal liegt wird das vom Script erkannt und nach Abfrage gelöscht.


    Anhang:
    tut.zip # Eine ausführliche Installations Anleitung
    varlog_aktuell.tar.gz # Alle Dateien und Scripte

    Files

    Hallo Zentris


    Danke für den Tipp mit logrotate :danke_ATDE:
    Ich werde versuchen etwas tiefer einzusteigen und bei einem Ergebnis hier wieder melden.



    Nur ein Bauchgefühl das ganze Problem könnte mit der varlog.service Unit zu tun haben.
    Auch diese Abfragen sind nicht OK


    Code
    1. journalctl --verify -D /var/log_save/journal/8c5604e85c924195aef34a3e4079998d/
    2. PASS: /var/log_save/journal/8c5604e85c924195aef34a3e4079998d//system@00054eb7af61b5d7-112262f92082465f.journal~
    3. PASS: /var/log_save/journal/8c5604e85c924195aef34a3e4079998d//system.journal
    4. Data object references invalid entry at 299312███████████████████████████████████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  75%
    5. File corruption detected at /var/log_save/journal/8c5604e85c924195aef34a3e4079998d//system@00054eb7c9f4b8eb-a9491762b84614a8.journal~:000000 (of 8388608 bytes, 0%).
    6. FAIL: /var/log_save/journal/8c5604e85c924195aef34a3e4079998d//system@00054eb7c9f4b8eb-a9491762b84614a8.journal~ (Ungültige Nachricht)


    Bei dieser Abfrage stört mich die Meldung "Failed unmounting /var/log."


    Hallo Zentris


    Das logrotate kann das Problem sicher entschärfen ist aber auch nicht einfach zu konfigurieren.
    Auf meinem Pc zb. läuft Arch und es gibt einen logrotate.service sowie den logrotate.timer
    für das Journal ist kein service zuständig die Journal Dateien belegen gut 450 MB in /var/log
    Das ist auch nicht optimal eingestellt.



    In Jessi gibt es keinen logrotate.service bzw. .timer das müste alles gebaut und sinnvoll konfiguriert werden.

    Hallo Zentris


    Nach jedem reboot oder halt gibt es in /var/log/ und in /var/log_save eine weitere xxx.journal~ Datei
    es ist nur eine Frage der Zeit bis /var/log/ dann voll ist.


    Wenn ich die Beschreibung von ThomasL richtig verstanden habe wird das journal
    beim booten nach /var/run geschrieben und erst wenn /var/log als tmpfs gemounted ist nach /var/log/ verschoben.
    In diesem Moment gibt es ein /var/log/journal/xx../system .journal
    Wenn jetzt der Start Zweig vom script varlog versucht das in /var/log_save/journal/xx../ stehende system .journal
    nach /var/log/journal/xx../ zu schreiben entsteht eben das Problem der .journal~ (Sicherungs) Dateien.

    Hallo
    Mein Start zu dem Thema erfolgte mit dem Beitrag#59 von ThomasL
    Das Problem bei reboot oder halt läuft der rsync Schalter --delete ins Leere.
    Das sieht dann so aus nach einigen reboot ist /var/log/ voll. Wo ist mein Fehler.


    Code
    1. ls -la /var/log/journal/8c5604e85c924195aef34a3e4079998d/
    2. -rw-r----- 1 root systemd-journal 8388608 Mai  5 20:45 system@00054ecb4a3785b9-6ec412cc2b86581b.journal~
    3. -rw-r----- 1 root systemd-journal 4194304 Mai  5 20:56 system@00054ecb74072424-285188f29f35fc74.journal~
    4. -rw-r----- 1 root systemd-journal 4194304 Mai  5 21:00 system.journal
    5. #
    6. ls -la /var/log_save/journal/8c5604e85c924195aef34a3e4079998d/
    7. -rw-r----- 1 root systemd-journal 8388608 Mai  5 20:45 system@00054ecb4a3785b9-6ec412cc2b86581b.journal~
    8. -rw-r----- 1 root systemd-journal 4194304 Mai  5 20:56 system.journal


    Auf dem RasPi läuft jessi in Version. Der rsyslog wurde entfernt.

    Code
    1. Linux bastel_pi 4.4.50+ #970 Mon Feb 20 19:12:50 GMT 2017 armv6l GNU/Linux
    2. sudo apt-get purge --remove rsyslog


    Die Unit wurde nicht verändert.


    Das script varlog wurde angepasst.


    In der journal.conf steht bei mir

    Code
    1. #Storage=persistent
    2. SystemMaxUse=50M
    3. SystemKeepFree=5M
    4. SystemMaxFileSize=4M
    5. ForwardToSyslog=no

    Hallo Forum


    Für ein neues Projekt suche ich noch
    ein Admatec C-Berry Touch Display 3,5'' TFT LCD Modul 320x240p
    Es muss Funktionieren (Voll und ganz) ohne sichtbare Gebrauchsspuren.


    Bitte kurze Rückmeldung per PN mit Preis Angabe.
    Zahlen Nicht per PayPal.


    Hallo DG8BR


    Danke für den Link :danke_ATDE:


    Nachdem für eine andere Datei nur id3v2 Tags gesetzt wurden war kein Unterschied zu sehen.

    Code
    1. id3tag -2 -aMove -sBLACKBERRY\ WAY -t10 -AWork -cTest -y1980 -gRock BLACKBERRY\ WAY.mp3
    2. +++ Artist  = Move
    3. +++ Album   = Work
    4. +++ Song    = BLACKBERRY WAY
    5. +++ Year    = 1980
    6. +++ Comment = Test
    7. +++ Track   = 10
    8. Tagging BLACKBERRY WAY.mp3: attempting v2, tagged v2


    Es war mein Fehler nach einem Update der mpd Datenbank und einlesen der Playlist ist fast alles OK.
    Der Code kommt aus meinem Projekt.

    Code
    1. system("mpc update");
    2. system("mpc clear");
    3. system("mpc ls | mpc add");


    Wenn zwei - (Minus) Zeichen im Dateinamen sind erkennt zwar "mpc list Artist" und auch "mpc list Title" diese Datei
    aber "mpc playlist" eben nicht.

    Code
    1. ls
    2. Fleetwood Mac - 04 - Coming Home.mp3


    Nach dem Umbenenen der Datei und einem "mpc update" ist dann alles OK.


    Code
    1. mv Fleetwood\ Mac\ -\ 04\ -\ Coming\ Home.mp3 Fleetwood\ Mac\ -\ Coming\ Home.mp3


    Dieser Titel ist dann auch in der mpc playlist zu sehen.

    Code
    1. ls -l
    2. -rw-r--r-- 1 pi pi  3760413 Mär 17 17:57 Fleetwood Mac - Coming Home.mp3
    3. mpc playlist
    4. Fleetwood Mac - Coming Home


    Das Thema ist damit erledigt.


    [/quote]

    Hallo


    Suche ein Admatec C-Berry Touch Display 3,5'' TFT LCD Modul 320x240p
    Es muss Funktionieren (Voll und ganz) ohne sichtbare Gebrauchsspuren.


    Bitte kurze Rückmeldung per PN mit Preis Angabe.
    Zahlen Nicht per PayPal.

    Warum werden in der mpc playlist zwei mp3 Dateien unterschiedlich angezeigt.
    Nachdem bei der Datei FIRE.mp3 die fehlenden id3 Tags gesetzt wurden.
    Ich möchte die id3 Tags Artist und Title im C Berry anzeigen.
    Bis jetzt sehe nur den Titel aus der FIRE.mp3



    Im Ordner /home/pi/musik_mpd liegen zb.


    Code
    1. ls -la
    2. -rw-r--r--  1 pi pi  9015641 Okt 15 20:27 Another Brick in the Wall.mp3
    3. -rw-r--r--  1 pi pi  2817173 Mär 15 20:00 FIRE.mp3


    Die 1 Abfrage

    Code
    1. id3v2 -l Another\ Brick\ in\ the\ Wall.mp3
    2. id3v1 tag info for Another Brick in the Wall.mp3:
    3. Title  : Another Brick in the Wall, Pt.  Artist: Pink Floyd
    4. Album  : Pulse - CD1                     Year: 1995, Genre: Rock (17)
    5. Comment:  YEAR: 1995                     Track: 11



    Die id3 Tags für FIRE.mp3 werden gesetzt.

    Code
    1. id3v2 -1 -a "Arthur Brown" -t "Fire" -g 17 -T 1 FIRE.mp3


    Die 2 Abfrage

    Code
    1. id3v2 -l FIRE.mp3
    2. id3v1 tag info for FIRE.mp3:
    3. Title  : Fire                            Artist: Arthur Brown
    4. Album  :                                 Year:     , Genre: Rock (17)
    5. Comment:                                 Track: 1
    6. FIRE.mp3: No ID3v2 tag


    Ab hier der Unterschied bei den mpc Abfragen.


    Code
    1. mpc playlist
    2. FIRE.mp3
    3. Pink Floyd - Another Brick in the Wall, Pt. 2
    4. mpc list Title
    5. Another Brick in the Wall, Pt. 2
    6. mpc list Artist
    7. Pink Floyd

    Hallo Renão


    Die Infos kommen von den Radiosendern und jeder sendet was anderes oder gar nichts.
    BR3 zb. sendet einen : als Trennzeichen und Antenne Bayern wieder ein - als Trennzeichen.
    Der WDR2 und Jump senden Titel von Artist

    Hallo Tell


    Es funktioniert super mit Deinem Code, im Display sind keine sonderbaren Zeichen mehr zu sehen.


    :danke_ATDE: :danke_ATDE:
    Automatisch zusammengefügt:[hr]
    Hallo Renão
    Wo purzeln denn diese Daten heraus?


    Ich bin mir nicht sicher ob die Frage hiermit beantwortet ist.


    Auf dem RasPi läuft nur der mpd/mpc mit einem
    mpc load radiosender

    wird die Datei radiosender.m3u geladen. Darin befinden sich in dieser Form die Sender.

    Code
    1. http://ndr-ndr2-nds-mp3.akacast.akamaistream.net/7/400/252763/v1/gnl.akacast.akamaistream.net/ndr_ndr2_nds_mp3


    Mit diesem Aufruf aus meinem C Programm
    system("mpc current -f %title% > titel.txt");
    wird aus dem mp3 stream der Artist und der Titel in die Datei titel.txt geschrieben.
    Mit Hilfe der von Tell gezeigten Funktion wird der Artist und der Titel zur weiteren Verwendung zerlegt.


    Ob der mp3 stream auch mit einem anderen Programm zerlegt werden kann wäre eine gute Frage.

    [quote='Tell','http://test.forum-raspberrypi.de/forum/index.php?thread/&postID=265382#post265382']
    strtok ist nicht geeignet, weil das Space hinter dem Minus im String bleibt.


    Hallo Tell
    Danke für den Tip werde das morgen Testen und das Ergebnis hier posten.


    Ich seh nicht ganz durch...


    Wie sieht der Inhalt des Files aus?
    Und was soll rauskommen?


    Hallo Tell
    Die Datei titel.txt wird ca. alle 2 Minuten neu geschrieben und sieht dann zb. so aus.

    Code
    1. Alle Farben & Graham Candy - She Moves (Far Away)


    Vor dem - steht der Interpret/Artist nach dem - dann der aktuelle Titel.
    Der Artist wird dann in die globale Variable artist und der Titel in die Variable titel zur weiteren Verwendung geschrieben.
    Mein Problem im C-Berry Display wird der Titel manchmal mit einem NewLine Zeichen angezeigt.
    Das würde ich gern verhindern.


    Muss das in C sein? In Python ist so etwas mit


    Code
    1. with open(dateiname) as inf:
    2.     content = inf.read()
    3. lines = [line.strip() for line in content.split("-")]


    erledigt. Stringverarbeitung ist wirklich nicht C's Staerke (uebrigens hat das nix mit C# zu tun, wie dein Titel angibt).


    Hallo _deets_
    Das Projekt ist komplet in C geschrieben deshalb möchte ich die eine Funktion nicht mit Python aufrufen auch
    wenn es sicherlich einfacher wäre.

    Für mein Projekt_m8 möchte ich im Radio Modul den Artist und den Titel anzeigen.
    der mpc ermittelt im Format artist - titel den Interpreten und den Titel und schreibt die Datei titel.txt
    das Problem im C-Berry stehen 2 Zeilen mit max. 28 Byte zur Verfügung der Artist wird immer richtig angezeigt.
    der Titel wird ab und zu immer noch mit dem New Line Zeichen angezeigt.

    Wie kann die Funktion optimiert werden um die variablen Längen von Artist und Titel abzufangen.
    Sowie das sporadische Anzeigen des New Line Zeichen bei der Titel Anzeige dauerhaft zu verhindern.