mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-27 11:52:03 +00:00
mirror log processor
This commit is contained in:
parent
ebcef6f010
commit
81573e491f
1 changed files with 105 additions and 0 deletions
105
src/cmd/venti/srv/mirror-log.awk
Normal file
105
src/cmd/venti/srv/mirror-log.awk
Normal file
|
@ -0,0 +1,105 @@
|
|||
# possible cron job:
|
||||
#
|
||||
# cd /cfg/backup
|
||||
# { for(i in 'E0 E1' 'E2 E3' 'E4 E5' 'E6 E7' 'F0 F1' 'F2 F3' 'F4 F5'){
|
||||
# x=`{echo $i}
|
||||
# venti/mirrorarenas -v /dev/sd$x(1)^/arenas /dev/sd$x(2)^/arenas
|
||||
# } } >www/mirror1.txt >[2=1]
|
||||
# mv www/mirror1.txt www/mirror.txt
|
||||
# awk -f mirror-log.awk www/mirror.txt >www/mirror.html
|
||||
|
||||
BEGIN {
|
||||
print "<html><body><h1>mirror status</h1>"
|
||||
print "details in <a href=mirror.txt>mirror.txt</a><br><br>"
|
||||
print "<hr><table cellpadding=5 cellspacing=0 border=0>"
|
||||
laststatus = ""
|
||||
firstarena = ""
|
||||
lastarena = ""
|
||||
status = ""
|
||||
arena = ""
|
||||
|
||||
}
|
||||
|
||||
function fmt( color) {
|
||||
nfmt++
|
||||
if(nfmt%2 == 0)
|
||||
color = "#cccccc"
|
||||
else
|
||||
color = "#ffffff"
|
||||
return "<tr bgcolor=" color "><td valign=top>%s</td><td valign=top>%s</td><td>%s</td><td>%s</td><td>"
|
||||
}
|
||||
|
||||
|
||||
function finish() {
|
||||
if(!arena && !status)
|
||||
return
|
||||
if(info == "" && laststatus == status){
|
||||
lastarena = arena
|
||||
return
|
||||
}
|
||||
if(firstarena != ""){
|
||||
if(firstarena == lastarena)
|
||||
printf(fmt(), time, firstarena, "", "");
|
||||
else
|
||||
printf(fmt(), time, firstarena, "-", lastarena);
|
||||
print laststatus "</td></tr>"
|
||||
firstarena = ""
|
||||
lastarena = ""
|
||||
laststatus = ""
|
||||
}
|
||||
if(info == ""){
|
||||
firstarena = arena
|
||||
laststatus = status
|
||||
lastarena = arena
|
||||
return
|
||||
}
|
||||
printf(fmt(), time, arena, "", "");
|
||||
print status
|
||||
if(info != ""){
|
||||
print "<pre>"
|
||||
printf("%s", info)
|
||||
print "</pre>"
|
||||
}
|
||||
print "</td>"
|
||||
}
|
||||
|
||||
$3 !~ /:$/ && $4 ~ /^\(.*-.*\)$/ {
|
||||
finish();
|
||||
arena = $3
|
||||
range = $4
|
||||
status = ""
|
||||
info = ""
|
||||
size = 0
|
||||
time = $1 " " $2
|
||||
next
|
||||
}
|
||||
|
||||
$3 ~ /:$/ && $0 ~ /^....\/.... ..:..:.. [^ ]/ {
|
||||
if($4 == "0" && $5 == "used" && $6 == "mirrored"){
|
||||
status = "empty"
|
||||
next
|
||||
}
|
||||
if($4 ~ /^[0-9,]+$/ && $5 == "used" && $6 == "mirrored"){
|
||||
size = $4
|
||||
status = "partial " size ", mirrored"
|
||||
next
|
||||
}
|
||||
if($4 ~ /^[0-9a-f]+$/ && length($4) == 40 && $5 == "sealed" && $6 == "mirrored"){
|
||||
status = "sealed, mirrored";
|
||||
next
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
info = info $0 "\n"
|
||||
}
|
||||
|
||||
END{
|
||||
finish();
|
||||
status = "done"
|
||||
arena = ""
|
||||
info = ""
|
||||
finish();
|
||||
print "</table><hr>"
|
||||
print "</body></html>"
|
||||
}
|
Loading…
Reference in a new issue