Fragen zum Tutorial "RAMdisk auslagern & weitere Optimierungen bezgl. Logs"

  • Hallo zusammen und Hallo meigrafd, [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] [/font]


    als erstes danke für das tolle [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Tutorial [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]v[/font][/font][font="Arial"]ar/log/ in eine Art RAMdisk auslagern & weitere Optimierungen bezgl. Logs[/font]
    [font="Arial"]Da ich deinen Tutorial nicht zumüllen möchte und ich noch Fragen zur installation unter Jessie habe, mache ich hier einen neuen Thread auf, ich hoffe das ist für Dich i.O!?[/font]
    [font="Arial"] [/font]
    Laut deinen Aussagen installiere / führe ich als erstes das hier aus:


    • [font="Tahoma, sans-serif"]Script erstellen:
      nano /etc/init.d/varlog[/font]

    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]#!/bin/bash
    ### BEGIN INIT INFO
    # Provides: varlog
    # Required-Start: $local_fs
    # Required-Stop: $local_fs
    # X-Start-Before: $syslog
    # X-Stop-After: $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Start/stop logfile saving
    ### END INIT INFO
    #
    # varlog This init.d script is used to start logfile saving and restore.
    #

    varlogSave=/var/save.log/
    [ ! -d $varlogSave ] && mkdir -p $varlogSave

    PATH=/sbin:/usr/sbin:/bin:/usr/bin

    case $1 in
    start)
    echo "*** Starting tmpfs file restore: varlog."
    if [ -z "$(grep /var/log /proc/mounts)" ]; then
    echo "*** mounting /var/log"
    cp -Rpu /var/log/* $varlogSave
    varlogsize=$(grep /var/log /etc/fstab|awk {'print $4'}|cut -d"=" -f2)
    [ -z "$varlogsize" ] && varlogsize="70M"
    mount -t tmpfs tmpfs /var/log -o defaults,size=$varlogsize
    chmod 755 /var/log
    fi
    cp -Rpu ${varlogSave}* /var/log/
    ;;
    stop)
    echo "*** Stopping tmpfs file saving: varlog."
    #[ -n $varlogSave ] && rm -rf ${varlogSave}*
    #[ ! -d $varlogSave ] && mkdir -p $varlogSave
    cp -Rpu /var/log/* $varlogSave >/dev/null 2>&1
    sync
    umount -f /var/log/
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    ;;
    esac

    exit 0[/font]

    • [font="Tahoma, sans-serif"]Script ausführbar machen:[/font]

    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]chmod +x /etc/init.d/varlog[/font]

    • [font="Tahoma, sans-serif"]Script in den Runlevel eintragen sodass es bei starten und herunterfahren des Systems ausgeführt wird:[/font]

    [font="Tahoma, sans-serif"] [/font]
    [font="Tahoma, sans-serif"]Das entfällt bei Jessie[/font]
    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]update-rc.d varlog start 01 2 3 4 5 . stop 99 0 1 6 .[/font]
    [font="Courier New"] [/font]


    [font="Tahoma, sans-serif"]Nun müssen wir eine neue Service Datei für systemd erstellen:[/font]
    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]sudo nano /etc/systemd/system/varlog.service[/font]
    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"][Unit]
    Description=Start/stop tmpfs logfile saving
    DefaultDependencies=no
    After=local-fs.target
    Before=Basic.target

    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/etc/init.d/varlog start
    ExecStop=/etc/init.d/varlog stop

    [Install]
    WantedBy=local-fs.target[/font]


    [font="Tahoma, sans-serif"]Und nun noch diesen Dienst einschalten:[/font]



    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]sudo systemctl enable varlog[/font]
    [font="Tahoma, sans-serif"]
    Nach einem Reboot kann man sich anzeigen lassen ob ein Dienst gestartet wurde:[/font]

    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]sudo systemctl status varlog[/font]
    [font="Courier New"] [/font]
    [font="Courier New"] [/font]
    [font="Arial"]Aber was ist mit dem allem hier, sprich stopp, RamRun, RamLock und start?[/font]

    • [font="Tahoma, sans-serif"]Nun sorgen wir dafür das /var/log/ erstmalig gesichert wird:[/font]

    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]/etc/init.d/varlog stop[/font]

    • [font="Tahoma, sans-serif"]Bevor wir nun "start" ausführen eine kurze Erklärung was /etc/init.d/varlog macht:

      Durch den " stop " Parameter werden alle Dateien und Verzeichnisse inkl. deren Datei-Rechte/Besitzer von /var/log/ nach /var/save.log/ kopiert.

      Durch den " start " Parameter wird erst geprüft ob tmpfs bereits für /var/log gemounted wurde und falls nicht wird /var/log/* nach /var/save.log/ kopiert und /var/log/ als tmpfs mit 70M (Megabyte) eingehängt (über das vorhandene)..
      Anschliesend werden alle Dateien und Verzeichnisse inkl. deren Datei-Rechte/Besitzer von /var/save.log/ nach /var/log/ kopiert.

      Man kann auch in /etc/fstab eine Zeile einfügen worüber die maximale Grösse fürs tmpfs von /var/log festgelegt wird, das würde das Script dann auch auslesen:[/font]

    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]tmpfs /var/log tmpfs size=70M 0 0[/font]
    [font="Tahoma, sans-serif"]
    Dann müssen wir noch RamRun und RamLock aktivieren:[/font]

    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]sed -i /etc/default/rcS -e "s/RAMRUN=no/RAMRUN=yes/"
    sed -i /etc/default/rcS -e "s/RAMLOCK=no/RAMLOCK=yes/"[/font]

    [font="Tahoma, sans-serif"]RAMRUN bewirkt dass beim Bootvorgang alles in /var/run/ belassen wird und nicht aufgeräumt, und /var/run wird dadurch auch in tmpfs abgelegt[/font][font="Tahoma, sans-serif"]
    Das gleiche gilt auch für RAMLOCK bezüglich /var/lock/


    [/font]
    [font="Tahoma, sans-serif"]
    Nun starten wir das Script damit tmpfs für /var/log eigehängt wird:[/font]

    [font="Tahoma, sans-serif"]Code: [/font][font="Tahoma, sans-serif"]Alles markieren[/font]
    [font="Courier New"]/etc/init.d/varlog start[/font]



    muss ich das alles auch noch ausführen oder ist das unter dem neuen script unnötig?

  • Hallo und Danke fürs erstellen eines extra Threads. Ist es Oke wenn ich deinen Link allgemein als "Frage & Anregungen" verlinke?


    Wie ich schon im Thread /var/log/ in eine Art RAMdisk auslagern & weitere Optimierungen bezgl. Logs erwähnt habe, brauchst du nur den Punkt bezüglich "update-rc.d" weg lassen.
    Das einmalige Ausführen des Scripts, damit die Basis geschaffen werden kann also eine Sicherung des /var/log/ Ordners, musst du natürlich auch weiterhin noch ausführen - das hat nichts mit "update-rc.d" zu tun - sonst hätte ich auch den Punkt noch erwähnt.



    RAMRUN und RAMLOCK hat erstmal nicht direkt etwas mit dem Script varlog zu tun sondern ist eine erweiterte Optimierung das Systemlaufwerk zu entlasten. varlog funktioniert auch ohne diese Optimierung.
    Mittlerweile ist das aber nicht mehr in /etc/default/rcS sondern glaub ich /etc/default/tmpfs

  • Hallo meigrafd,
    danke für deine schnelle Antwort, wie du siehst bin ich ganz neu in der Materie und möchte mehr dazu lernen, dadurch bin ich einfach verunsichert und denke evtl. zu kompliziert! Jetzt ist mir aber einiges klar geworden.


    Hallo und Danke fürs erstellen eines extra Threads. Ist es Oke wenn ich deinen Link allgemein als "Frage & Anregungen" verlinke?


    natürlich nicht.



    RAMRUN und RAMLOCK hat erstmal nicht direkt etwas mit dem Script varlog zu tun sondern ist eine erweiterte Optimierung das Systemlaufwerk zu entlasten. varlog funktioniert auch ohne diese Optimierung.
    Mittlerweile ist das aber nicht mehr in /etc/default/rcS sondern glaub ich /etc/default/tmpfs


    Ich hab die Änderung einmal eingearbeitet / vermerkt und werde das demnächst probieren.



    Ist das "RAMTMP=yes" in [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]/etc/default/tmpfs nicht dass gleiche [/font]wie "tmpfs /tmp tmpfs nodev,nosuid,relatime,size=100M 0 0" in /etc/fstab?
    Edit: oder sind das 2 unterschiedliche Dinge?

    Edited once, last by lx2 ().

  • Ist das RAMTMP=yes in /etc/default/tmpfs nicht dass gleiche wie tmpfs /tmp tmpfs nodev,nosuid,relatime,size=100M 0 0 in /etc/fstab?
    Edit: oder sind das 2 unterschiedliche Dinge?


    Ich hoffe ich bin nicht zu unverschämt! Ich möchte das verstehen und frage deshalb nochmals nach, ist dass das gleiche oder ist das etwas anderes.


    Gesendet von meinem GEM-703L mit Tapatalk

    Edited once, last by lx2 ().

  • Hallo zusammen,


    da ich in letzter Zeit geschäftlich ausser Haus war, bin ich erst jetzt dazu gekommen meinen RPI3 (Jessie) mit dem Skript von meigrafd zu optimieren.
    Es hat soweit alles funktioniert, ausser die zusätzliche Optimierung

    Quote

    Eine weitere Optimierung wäre auch /etc/fstab um folgende Optionen zu erweitern: noatime,nodiratime,commit=120
    /dev/mmcblk0p1 /boot vfat defaults,noatime,nodiratime,commit=120 0 2
    /dev/mmcblk0p2 / ext4 defaults,noatime,nodiratime,commit=120 0 1


    führt dazu das mein RPI3 danach nicht mehr bootet / ansprechbar ist.
    Ich hab das mehr mehrmals ausprobiert, sobald ich das eingetragen habe und einen reboot durchgeführt habe war es aus! RAMTMP=yes in /etc/default/tmpfs hat wiederum problemlos funktioniert. Vielleicht kann jemand was dazu sagen.

  • Moin,


    schmeisse beide
    ,commit=120
    in der fstab raus.


    Hat bei mir geholfen, nach dem update auf jessie.


    Kannst Du auch über die Konsole ( mit root ) machen, wenn´s hängt, sofern Du vorher die Datei /etc/ssh/sshd_config editiert und
    PermitRootLogin without-password
    gegen
    PermitRootLogin yes
    ersetzt.


    Und sorry kann zur Zeit nur plain Text schreiben ...


    Bye


    Jürgen

  • Hallo Jürgen, danke für deine Hilfe, bin am Wochenende wieder zu Hause, dann werde ich das versuchen.
    Jetzt ist es mir zu heiß falls es nochmals schief läuft, das mit dem root hab ich bereits schon so gemacht wie du es beschrieben hast. Aber ich konnte damals selbst mit der Konsole keine Verbindung mehr aufbauen.


    Gesendet von meinem GEM-703L mit Tapatalk

  • Moin,


    Konsole = Tastatur


    In der Regel hast Du dann nur die Auswahl dich per root einzuloggen, im emergency mode und kannst dann die /etc/fstab bearbeiten.
    Nach einem reboot ist wieder alles ok.

  • Moin,


    Konsole = Tastatur


    In der Regel hast Du dann nur die Auswahl dich per root einzuloggen, im emergency mode und kannst dann die /etc/fstab bearbeiten.
    Nach einem reboot ist wieder alles ok.


    Bye


    Jürgen


  • da ich in letzter Zeit geschäftlich ausser Haus war, bin ich erst jetzt dazu gekommen meinen RPI3 (Jessie) mit dem Skript von meigrafd zu optimieren.
    Es hat soweit alles funktioniert, ausser die zusätzliche Optimierung


    Die Zusätzlichen Optimierungen haben nichts mit meinem Script zu tun.
    Deshalb heißt es ja "Zusätzlich" beziehungsweise in meiner Anleitung durch einen Horizontalen Strich abgetrennt und "Weitere Optimierungen" ...

  • Hier eine kurze Rückmeldung, ich hab es aus der Ferne doch gewagt und es hat wie Jürgen beschrieben hat funktioniert.


    Dass das eine zusätzliche Optimierung ist und nichts mit dem Skript zu tun hat war mir schon klar.


    Ps. Das mit dem Eintrag "RAMTMP=yes" hat doch nicht so zuverlässig funktioniert, warum auch immer! Ich habe jetzt den Eintrag "tmpfs /tmp tmpfs nodev,nosuid,relatime,size=100M 0 0" in der fstab gewählt, damit funktioniert es.


    Gesendet von meinem GEM-703L mit Tapatalk

    Edited once, last by lx2 ().