From 3b8a155589443ecf3012805a316421fcbd08c9ae Mon Sep 17 00:00:00 2001 From: euer Date: Sun, 23 Dec 2012 00:37:17 +0100 Subject: //oncology -> //god --- god/oncology/Makefile | 23 ++ god/oncology/lcd4linux.conf | 572 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 595 insertions(+) create mode 100644 god/oncology/Makefile create mode 100644 god/oncology/lcd4linux.conf (limited to 'god/oncology') diff --git a/god/oncology/Makefile b/god/oncology/Makefile new file mode 100644 index 00000000..05d5c422 --- /dev/null +++ b/god/oncology/Makefile @@ -0,0 +1,23 @@ +build-deps: + #punani -Ei libtool automake autoconf zlib1g-dev libssl-dev python-dev libc6 libusb-dev libibus-dev subversion libgd2-noxpm-dev libgd2-noxpm lcd4linux + +/usr/bin/lcd4linux: build-deps + #punani -Ei lcd4linux + sed -i 's/usr\/sbin\/lcd4linux/usr\/bin\/lcd4linux/g' /etc/init.d/lcd4linux + dpfhack_display/build-dpf-lcd4linux.sh + make -C dpfhack_display/lcd4linux/ install + +lcd4linux_autostart: + # service lcd4linux start + # update-rc.d lcd4linux + +install: /usr/bin/lcd4linux /etc/lcd4linux.conf lcd4linux_autostart + # TODO this is debian only + +update: /etc/lcd4linux.conf + service lcd4linux force-reload + +/etc/lcd4linux.conf: lcd4linux.conf + chown krebs:krebs lcd4linux.conf + chmod 600 lcd4linux.conf + cp -a lcd4linux.conf /etc/lcd4linux.conf diff --git a/god/oncology/lcd4linux.conf b/god/oncology/lcd4linux.conf new file mode 100644 index 00000000..be16629d --- /dev/null +++ b/god/oncology/lcd4linux.conf @@ -0,0 +1,572 @@ +Layout 'Krebs' +Display 'DPF' + +Variables { + # Ticks: + second 1000 + minute 60 * second + + # Standard Dimensions: + linesize 53 # max line length, for status lines etc. + width100 51 # full width after padding (border) + width050 24 # 1/2 of full width + width033 17 # 1/3 of full width + width025 12 # 1/4 of full width + width010 5 # 1/10 of full width + + # Colors: + # ToDo: Alphakanal ausnutzen + black '000000' + white 'ffffff' + red 'ff0000' + darkblue '000066' + lightgray 'b2b2b2' + darkgray '191919' + barcolor0 '5f5fff' + barcolor1 'ff5f5c' + + # To be set later by timers: + FileMsg 'Dummy' +} + +Display dpf { + Driver 'DPF' + Port 'usb0' + Font '6x8' + Foreground white + Background darkblue + Basecolor darkblue +} + +Widget System { + class 'Text' + expression '*** ' . uname('nodename') . ' '. netinfo::ipaddr('eth0') . ' ***' + width linesize + align 'C' + update 0 + Background lightgray + Foreground darkgray +} + +Widget Time { + class 'Text' + expression strftime('%a, %d.%m.%Y %H:%M:%S', time()) . ' Up: ' . uptime('%d days %H:%M:%S') + width linesize + align 'C' + update 1 * second + Background lightgray + Foreground darkgray +} + +Widget Busy { + class 'Text' + expression proc_stat::cpu('busy', 0.5 * second) + prefix 'Busy' + postfix '%' + width width050 + precision 1 + align 'R' + update 0.5 * second +} + +Widget BusyBar { + class 'Bar' + expression proc_stat::cpu('busy', 0.5 * second) + expression2 proc_stat::cpu('system', 0.5 * second) + length width050 + direction 'E' + update 0.5 * second + Background darkgray + BarColor0 barcolor0 + BarColor1 barcolor1 +} + +Widget Load { + class 'Text' + expression loadavg(1) + prefix 'Load' + postfix loadavg(1) > 1.0 ? '!' : ' ' + width width050 + precision 1 + align 'R' + update 0.5 * second +# Foreground loadavg(1) > 1.0 ? red : white +} + +Widget LoadBar { + class 'Bar' + expression loadavg(1) + max 4.0 + length width050 + direction 'E' + update 0.5 * second + Background darkgray + BarColor0 barcolor0 + BarColor1 barcolor1 +} + +Widget Disk { + class 'Text' + # disk.[rw]blk return blocks, we assume a blocksize of 512 + # to get the number in kB/s we would do blk*512/1024, which is blk/2 + # expression (proc_stat::disk('.*', 'rblk', 0.5 * second)+proc_stat::disk('.*', 'wblk', 0.5 * second))/2 + # with kernel 2.6, disk_io disappeared from /proc/stat but moved to /proc/diskstat + # therefore you have to use another function called 'diskstats': + expression (diskstats('sd[a-z]$', 'read_sectors', 0.5 * second) + diskstats('sd[a-z]$', 'write_sectors', 0.5 * second)) / 2 / 1024 + prefix 'Disk' + postfix ' MB/s' + width width050 + precision 1 + align 'R' + update 0.5 * second +} + +Widget DiskBar { + class 'Bar' + #expression proc_stat::disk('.*', 'rblk', 0.5 * second) + #expression2 proc_stat::disk('.*', 'wblk', 0.5 * second) + # for kernel 2.6: + expression diskstats('sd[a-z]$', 'read_sectors', 0.5 * second) / 2 / 1024 + expression2 diskstats('sd[a-z]$', 'write_sectors', 0.5 * second) / 2 / 1024 + length width050 + direction 'E' + update 0.5 * second + Background darkgray + BarColor0 barcolor0 + BarColor1 barcolor1 +} + +Widget Eth0 { + class 'Text' + expression (netdev('eth0', 'Rx_bytes', 0.5 * second) + netdev('eth0', 'Tx_bytes', 0.5 * second)) / 1024 + prefix 'eth0' + postfix ' KB/s' + width width050 + precision 1 + align 'R' + update 0.5 * second +} + +Widget Eth0Bar { + class 'Bar' + expression netdev('eth0', 'Rx_bytes', 0.5 * second) / 1024 + expression2 netdev('eth0', 'Tx_bytes', 0.5 * second) / 1024 + length width050 + direction 'E' + update 0.5 * second + Background darkgray + BarColor0 barcolor0 + BarColor1 barcolor1 +} + +Widget Eth0Traffic { + class 'Text' + expression (netdev('eth0', 'Rx_bytes', 0)+netdev('eth0', 'Tx_bytes', 0))/1024/1024/1024 + prefix 'Traffic:' + postfix ' GB' + width 21 + precision 3 + align 'R' + update 10 * second +} + +Widget MemoryTitle { + class 'Text' + expression 'Memory/Swap' + width width050 + align 'L' + update 0 +} + +Widget MemoryTotal { + class 'Text' + expression meminfo('MemTotal') / 1024 + prefix 'Memory Total ' + postfix ' MB' + width width050 + precision 0 + align 'R' + update 0 +} + +Widget MemoryFree { + class 'Text' + expression (meminfo('MemFree') + meminfo('Cached')) / 1024 + prefix 'Memory Free ' + postfix ' MB' + width width050 + precision 0 + align 'R' + update 1 * second +} + +Widget MemorySwappedTotal { + class 'Text' + expression (meminfo('SwapTotal')) / 1024 + prefix 'Swap Total ' + postfix ' MB' + width width050 + precision 0 + align 'R' + update 1 * second +} + +Widget MemorySwappedFree { + class 'Text' + expression (meminfo('SwapTotal') - meminfo('SwapUsed')) / 1024 + prefix 'Swap Free'' + postfix ' MB' + width width050 + precision 0 + align 'R' + update 1 * second +} + +Widget MemorySwappedUsed { + class 'Text' + expression (meminfo('SwapTotal') - meminfo('SwapFree')) / 1024 + prefix 'Swap Used ' + postfix ' MB' + width width050 + precision 0 + align 'R' + update 1 * second +} + +Widget LoggedInTitle { + class 'Text' + expression 'Hosts in Krebs Darknet' + width width050 + align 'L' + update 0 +} + +Widget LoggedIn { + class 'Text' + expression exec('/krebs/oncology/bin/krebshostup') + width width050 + align 'L' + update 300 * second +} + +Widget FSSpaceTitle { + class 'Text' + expression 'Disk Space available' + width width050 + align 'L' + update 0 +} + +Widget FSSpace1 { + class 'Text' + expression statfs('/', 'bavail') * statfs('/', 'bsize') / 1024 / 1024 / 1024 + prefix '/ (Root FS)' + postfix ' GB' + width width050 + precision 2 + align 'R' + update 10 * second +} + +Widget HDDTempTitle { + class 'Text' + expression 'Disk Temperature°C' + width width050 + align 'L' + update 0 +} + +Widget HDDTemp1 { + class 'Text' + expression hddtemp('/dev/sda') + width width010 + precision 1 + align 'R' + update 10 * second +} + +Widget HDDTemp2 { + class 'Text' + expression hddtemp('/dev/sdb') + width width010 + precision 1 + align 'R' + update 10 * second +} + +Widget HDDTemp3 { + class 'Text' + expression hddtemp('/dev/sdc') + width width010 + precision 1 + align 'R' + update 10 * second +} + +Widget ServicesTitle { + class 'Text' + expression 'Services' + width width100 + align 'C' + Background lightgray + Foreground darkgray +} + +Widget ApacheStatus { + class 'Text' + expression 'Apache ' + width width050 + postfix strstr(exec('/etc/init.d/apache2 status', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget BindDNSStatus { + class 'Text' + expression 'Bind DNS ' + width width050 + postfix strstr(exec('/etc/init.d/bind9 status', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget MuninStatus { + class 'Text' + expression 'Monitoring ' + width width050 + postfix strstr(exec('/etc/init.d/munin-node status', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget MiniDLNAStatus { + class 'Text' + expression 'MiniDLNA ' + width width050 + postfix strstr(exec('/etc/init.d/minidlna status', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget MySQLStatus { + class 'Text' + expression 'MySQL ' + width width050 + postfix strstr(exec('/sbin/status mysql', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget MythTVStatus { + class 'Text' + expression 'MythTV Backend ' + width width050 + postfix strstr(exec('/sbin/status mythtv-backend', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget PostfixStatus { + class 'Text' + expression 'Postfix ' + width width050 + postfix strstr(exec('/etc/init.d/postfix status', 10 * second), 'not running') > 0 ? 'down!' : 'up' + update 10 * second +} + +Widget ProFTPStatus { + class 'Text' + expression 'ProFTP ' + width width050 + postfix strstr(exec('/etc/init.d/proftpd status', 10 * second), 'not running') > 0 ? 'down!' : 'up' + update 10 * second +} + +Widget SambaStatus { + class 'Text' + expression 'Samba ' + width width050 + postfix strstr(exec('/sbin/status smbd', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget SambaStatusDS { + class 'Text' + expression 'Samba ' + width width050 + postfix strstr(exec('/etc/init.d/samba status', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget SSHStatus { + class 'Text' + expression 'SSH ' + width width050 + postfix strstr(exec('/sbin/status ssh', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget SSHStatusDS { + class 'Text' + expression 'SSH ' + width width050 + postfix strstr(exec('/etc/init.d/ssh status', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget SWRAIDStatus { + class 'Text' + expression 'SW RAID ' + width width050 + postfix strstr(exec('cat /proc/mdstat', 10 * second), '[UUU]') > 0 ? 'up' : 'attention!' + update 10 * second +} + +Widget TwonkyStatus { + class 'Text' + expression 'Twonkymedia ' + width width050 + postfix strstr(exec('/sbin/status twonkymedia', 10 * second), 'running') > 0 ? 'up' : 'down!' + update 10 * second +} + +Widget FileTitle { + class 'Text' + expression 'Syslog' + width width100 + align 'C' + Background lightgray + Foreground darkgray +} + +Widget SetFileMsg { + class 'Timer' + expression FileMsg = exec('tail -n 1 /var/log/syslog', 2 * second) + active 1 + update 2 * second +} + +Widget File1 { + class 'Text' + expression substr(FileMsg, 0 * width100, width100) + width width100 + align 'L' + Background darkgray + update 2 * second +} + +Widget File2 { + class 'Text' + expression substr(FileMsg, 1 * width100, width100) + width width100 + align 'L' + Background darkgray + update 2 * second +} + +Widget File3 { + class 'Text' + expression substr(FileMsg, 2 * width100, width100) + width width100 + align 'L' + Background darkgray + update 2 * second +} + +Widget Weather1 { + class 'Text' + expression exec('/krebs/kachelmann/wetter', 10 * second) + prefix 'Wetter:' + width width100 + align 'L' + Background darkgray + update 10 * second +} +Widget Bitcoin { + class 'Text' + expression exec('/krebs/btc/mtgox/ticker_text.sh', 10 * second) + prefix 'BTC: ' + width width100 + align 'L' + Background darkgray + update 30 * second +} + +Widget Stream { + class 'Text' + expression exec('/krebs/streams/streams status', 10 * second) + #prefix 'Stream:' + width width100 + align 'L' + Background darkgray + update 10 * second +} + +Widget Debug { + class 'Text' + expression 'Serverdisplay - Krebs' + width linesize + align 'C' + Foreground lightgray +} + +Widget na { + class 'Text' + expression 'n/a' + width 3 + align 'L' +} + +Widget Bgnd { + class 'Image' + file '/krebs/cholerab/bling/krebs-v2_320x240.png' + reload 0 + update 0 + inverted 0 + visible 1 +} + +Layout Krebs { + Row01.Col01 'System' + Row02.Col01 'Time' + Row04.Col02 'Busy' + Row05.Col02 'BusyBar' + Row07.Col02 'Load' + Row08.Col02 'LoadBar' + Row10.Col02 'Disk' + Row11.Col02 'DiskBar' + Row13.Col02 'Eth0' + Row14.Col02 'Eth0Bar' + Row15.Col02 'Eth0Traffic' + + Row04.Col28 'MemoryTitle' + Row05.Col29 'MemoryTotal' + Row06.Col29 'MemoryFree' + Row07.Col29 'MemorySwappedTotal' + Row08.Col29 'MemorySwappedUsed' + Row10.Col28 'LoggedInTitle' + Row11.Col29 'LoggedIn' + Row13.Col28 'FSSpaceTitle' + Row14.Col29 'FSSpace1' + + Row17.Col02 'ServicesTitle' + #Row18.Col02 'BindDNSStatus' + #Row19.Col02 'MuninStatus' + Row18.Col02 'ApacheStatus' + #Row21.Col02 'MiniDLNAStatus' + #Row18.Col29 'PostfixStatus' + #Row19.Col29 'ProFTPStatus' + #Row20.Col29 'SambaStatusDS' + Row18.Col29 'SSHStatusDS' + + Row19.Col02 'Weather1' + Row21.Col02 'Bitcoin' + Row23.Col02 'Stream' + + Row25.Col02 'FileTitle' + Row26.Col02 'File1' + Row27.Col02 'File2' + Row28.Col02 'File3' + + Row30.Col01 'Debug' + + Timer1 'SetFileMsg' + + Layer 2 { + X1.Y1 'Bgnd' + } +} -- cgit v1.2.3