[gelöst]Date -d "yesterday" oder -1d nicht verfügbar

Huhu,


ich habe hier so ein mini Linux namens BusyBox auf zwei Geräten.
Code:
BusyBox v1.13.4
An Board ist mindestens:
. : [ [[ alias bg break cd chdir command continue echo eval exec
exit export false fg getopts hash help jobs kill let local printf
pwd read readonly return set shift source test times trap true
type ulimit umask unalias unset wait
Date ist auch dabei, allerdings sagt dessen Help auch:

Code:
       -d TIME         Display TIME, not 'now'
Mein Ziel ist es ein Logfile im Format:
Code:
Sep 30 19:45:26 LOGLOGLOGLOGLOGLOG
Statt die letzten Zeilen mit Tail abzurufen, alles von Heute und alles von Gestern mit grep heraus zu filtern.

Heute bekomme ich hin, bei gestern scheitere ich :wink:

Code:
grep messages "date '+%b %d'"

/Edit
verständlich?
 
Zuletzt bearbeitet:
So habs fertig, Dank auch an mime.

Code:
#!/bin/sh
sTMonth=`date +'%b'`
sTDay=`date +'%d'`
sYMonth=`date -D %s -d $(( $(date +%s) - 86400 )) +'%b'`
sYDay=`date -D %s -d $(( $(date +%s) - 86400 )) +'%d'`
sToday="$sTMonth  ${sTDay/0}"
sYesterday="$sYMonth  ${sYDay/0}"
rm /tmp/www/syslog.html
echo '<HTML><HEAD><TITLE>Logfile: ' >> /tmp/www/syslog.html
date >> /tmp/www/syslog.html
echo ')</TITLE><h1>Router Log:</h1></HEAD><BODY>' >> /tmp/www/syslog.html
echo '<br>Gestern:('"$sYesterday"')<br><pre>' >> /tmp/www/syslog.html
grep -i "$sYesterday" /var/log/messages.0 >> /tmp/www/syslog.html
grep -i "$sYesterday" /var/log/messages >> /tmp/www/syslog.html
echo '</pre><br>Heute:('"$sToday"')<br><pre>' >> /tmp/www/syslog.html
grep -i "$sToday" /var/log/messages.0 >> /tmp/www/syslog.html
grep -i "$sToday" /var/log/messages >> /tmp/www/syslog.html
echo '</pre><br></BODY></HTML>' >> /tmp/www/syslog.html
sToday=
sYesterday=
sTMonth=
sTDay=
sYMonth=
sYDay=
Gedacht ist das dann als Logfile-View des Firewall und Systemlog des DD-WRT.
Man speichert das als Custom-Skript unter Administration\Commands

Man benötigt dann noch einen Cron Job unter Administration\Management:
Code:
*/1 * * * * root /tmp/custom.sh

/Edit 1
Aufruf via:
Code:
http://(Router-IP)/user/syslog.html

/Edit 2
Hab das Skript überarbeitet, da date 'Oct 04' ausgab und im Log 'OCT 4'(CASE + doppelt Leerzeichen)
 
Zuletzt bearbeitet:
V2

Ich musste es doch anders machen, diesmal ohne gestern und mit hübsch spoiler knöbbe :thumb_up:

Code:
#!/bin/sh
rm /tmp/www/syslog.html
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" ><HTML><HEAD><TITLE>Logfile: ' >> /tmp/www/syslog.html
date >> /tmp/www/syslog.html
echo '</TITLE><h1>Router Log:</h1></HEAD><BODY><br>' >> /tmp/www/syslog.html

echo '<input name="button1" type="button" onClick="if (this.parentNode.getElementsByTagName('\''div1'\'')[0].style.display != '\''none'\'') { this.parentNode.getElementsByTagName('\''div1'\'')[0].style.display = '\''none'\''; this.value = '\''messages.0'\''; } else { this.parentNode.getElementsByTagName('\''div1'\'')[0].style.display = '\''block'\''; this.value = '\''Hide'\'';}" value="messages.0">' >> /tmp/www/syslog.html
echo '<div1 class="spoiler" style="display: none;"><pre>' >> /tmp/www/syslog.html
cat /var/log/messages.0 >> /tmp/www/syslog.html
echo '</pre></div1>' >> /tmp/www/syslog.html

echo '<input name="button2" type="button" onClick="if (this.parentNode.getElementsByTagName('\''div2'\'')[0].style.display != '\''none'\'') { this.parentNode.getElementsByTagName('\''div2'\'')[0].style.display = '\''none'\''; this.value = '\''messages'\''; } else { this.parentNode.getElementsByTagName('\''div2'\'')[0].style.display = '\''block'\''; this.value = '\''Hide'\'';}" value="messages">' >> /tmp/www/syslog.html
echo '<div2 class="spoiler" style="display: none;"><pre>' >> /tmp/www/syslog.html
cat /var/log/messages >> /tmp/www/syslog.html
echo '</pre></div2><br>' >> /tmp/www/syslog.html

echo '</BODY></HTML>' >> /tmp/www/syslog.html
 
Zuletzt bearbeitet:
Zurück
Oben