-
Notifications
You must be signed in to change notification settings - Fork 4
costumscript_dublesyslog
Ausgeführt auf einer Fritzbox 7330 mit Firmware: 107.06.03 rev27364 Branding: avm Freetz: devel-12445 - FRITZ!OS 06.03-freetz-devel-12445 Zum Zeitpunkt der Installation gabs noch kein stable für diese Box mit dieser Firmware… der derzeitige Status ist mir nicht bekannt…
Intention zu Diesen CostumScript:
ich wünschte die möglichkeit das syslogging (einstellbar unter http://fritz.box:81/cgi-bin/conf/syslogd ) über den Local logger sowohl ins Filesystem (auf einen durchs fritzos eingehaengten usb stick) als auch in den ram-ringbuffer zu schreiben.
Ich habe erst einmal mit
# syslogd -h
syslogd: invalid option -- h
BusyBox v1.22.1 (2014-09-13 22:25:43 CEST) multi-call binary.
Usage: syslogd [OPTIONS]
System logging utility
(this version of syslogd ignores /etc/syslog.conf)
-n Run in foreground
-O FILE Log to FILE (default:/var/log/messages)
-l N Log only messages more urgent than prio N (1-8)
-S Smaller output
-s SIZE Max size (KB) before rotation (default:200KB, 0=off)
-b N N rotated logs to keep (default:1, max=99, 0=purge)
-R HOST[:PORT] Log to HOST:PORT (default PORT:514)
-L Log locally and via network (default is network only if -R)
-D Drop duplicates
-C[size_kb] Log to shared mem buffer (use logread to read it)
angeschaut was denn der BusyBox syslogd so bietet und dann mit
# ps w | grep syslog
4718 root 3256 S {busybox} syslogd -L -C2048
geschaut wie er denn gerade so läuft. Durch editieren der Option "Additional command line options (for experts)" im webinterface (variable SYSLOGD_EXPERT_OPTIONS) habe ich es dann zu folgenden Status gebracht:
root@FB:/var/mod/root# ps w | grep syslog
4718 root 3256 S {busybox} syslogd -L -C2048 -O /var/media/ftp/uStor01/log/messages -b 20 -s 20048
leider scheint es allerdings so als ob die entweder oder option im webinterface korrekt abstrahiert wurde und der busyboxsyslogd die zweite option konsequent ignoriert.
nun kam eine nähere Untersuchung des Befehls logread (ebenfals mit parameter -h) dran welcher offenbarte das dieser aehnlich wie tail eine option -f bietet welche den logausgaben folgt. nun ging es daran einen kleinen script zu schreiben der dann beim booten jeweils gestartet wird. gut aber wie macht man das, unter meinen "normalen" linuxdistributionen schreibe ich was nach /etc/rc.local aber hier auf der freetzbox ist das anders… es gibt eine option im webinterface unter …:81/cgi-bin/file/mod/rc_custom bei welcher ich aber beim compilieren der firmware die editierung deaktiviert hatte. Also musste es auch per ssh gehen… Da mir die leute im channel ##fritzbox im freenode irc netz nicht weiterhelfen konnten habe ich mich wieder einmal selbst auf die suche gemacht…:
nach diversen cds, lss und lesss fand ich dann durch
cat /etc/init.d/rc.mod |grep custom
heraus das die datei unter
/tmp/flash/mod/rc.custom zu finden ist. in der freez faq, welche mir
freundlicherweise über den irc channel angeboten wurde und jetzt bei dem
dort anwesenden bot auch einen alias hat…, stieß ich über dies auf den
Hinweis wie man diese Änderung im tempfs (ram) permanent in den flash
scriebt.
#fritzbox rc.custom ohne webinterface anlegen
touch /tmp/flash/mod/rc.custom
chmod +x /tmp/flash/mod/rc.custom
vi /tmp/flash/mod/rc.custom #das gewünschte reinschreiben...
# modsave flash # die daten vom ram in den flash übertragen...
Checking Freetz configuration ... changed.
Writing 3023 bytes to /var/flash/freetz ... done.
nun hieß es erst einmal zu checken ob das fritzos meinen stick (dessen
mountpoint man durch mount
erfährt) schon einhängt bevor freetz den
rc.custom ausführt, also getreu nach der Anleitung zur editierung der
der rc.custum sie in folgenden Zustand versetzt:
cat /tmp/flash/mod/rc.custom
echo testtest >> /var/media/ftp/uStor01/testlog
date >> /var/media/ftp/uStor01/testlog
die fritzbox neugestartet und siehe da die file /var/media/ftp/uStor01/testlog hat den richtigen Inhalt.
Gut nun sind alle nötigen infos eingehohlt und tests durchgeführt und es geht zu meiner…
////////////////
/tmp/flash/my/logtostick: (die datei muss natürlich auch das recht zum ausführen erhalten und in den flash permanentisiert werden...)
#dieser script loggt das was ueber logread aus dem ram zu lesen ist susaetzlich auf nen usb stick
echo logtostick started at: >> /var/media/ftp/uStor01/logtostick
date >> /var/media/ftp/uStor01/logtostick
echo current readlog content >> /var/media/ftp/uStor01/logtostick
logread >> /var/media/ftp/uStor01/logtostick
echo starting logread -f >> /var/media/ftp/uStor01/logtostick
logread -f >> /var/media/ftp/uStor01/logtostick
///////////////
root@FB:/var/mod/root# cat /tmp/flash/mod/rc.custom
/tmp/flash/my/logtostick &
root@FB:/var/mod/root# modsave flash
Checking Freetz configuration ... changed.
Writing 3623 bytes to /var/flash/freetz ... done.
root@FB:/var/mod/root#
happy hacking wünscht treaki —~~~~