STATUS updates
======TODO======
* update grade not-z scripts to handle/be aware of winter terms
* update system page for (new)www
* load balance/replicate www/wiki content between LAIR and DSLAB
* update system page for db
======URLs======
Some links of interest:
* [[http://www.llvm.org/|LLVM]]
* [[http://www.reocities.com/harpin_floh/glglobe_page.html|GLglobe]]
* [[http://www.heavens-above.com/|Heavens Above]]
* http://wiki.debian.org/kristian_jerpetjoen
* http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
* http://myproxylists.com/nix-brute-force
* [[haas/docs/plan9|My Plan9 Documentation page]]
* [[haas/system/sokraits_halfadder.offbyone.lan|The Sokraits/Halfadder System Documentation page]]
* http://www.egghelp.org/commands/channels.htm
* http://stackoverflow.com/questions/470617/get-current-date-and-time-in-php
* http://www.rjsystems.nl/en/2100.php
* [[http://bitsavers.trailing-edge.com/pdf/|BitSavers]]
* [[http://mir.aculo.us/2010/06/04/making-an-ipad-html5-app-making-it-really-fast/|Time Zone HTML5 app]]
* http://toic.org/2009/01/18/reverse-ssh-port-forwarding/
* Divergent Thinking
* http://en.wikipedia.org/wiki/Divergent_thinking
* http://faculty.washington.edu/ezent/imdt.htm
* https://help.ubuntu.com/community/Installation/QemuEmulator
* Socket Programming
* http://www.linuxhowtos.org/C_C++/socket.htm
* http://www.few.vu.nl/~jms/socket-info.html
* http://www.lowtek.com/sockets/
* http://www.tenouk.com/Module40.html
* http://www.tenouk.com/Module42.html
* http://www.tenouk.com/Module43a.html
* ALIX
* http://markshroyer.com/guides/router/
* http://markshroyer.com/2010/12/openbsd-alix-via-ubuntu/
* http://www.martinmellor.com/freebies/pinouts/IDE44_2_5_pinout.htm (IDE 44-pin pin-out)
* BeagleBoard
* http://elinux.org/BeagleBoardDebian
* Xen
* http://www.tumfatig.net/20110125/running-openbsd-on-xen/ (OpenBSD HVM)
* https://wiki.debian.org/Xen
* http://www.mydigitallife.info/fix-gmail-imap-invalid-credentials-or-web-login-requires-failure-error/
* http://manoharvanga.com/hackme/
* http://chneukirchen.github.com/sabotage/
* http://www.linusakesson.net/programming/pipelogic/index.php
* Free Data Structures eBook: http://dotnetslackers.com/Community/files/folders/data-structures-and-algorithms/entry30283.aspx
* Polyphasic Sleep and Napping
* http://priceonomics.com/the-nasa-studies-on-napping/
* http://www.opinionspost.com/longevity-greek-island-way/
* http://io9.com/the-science-behind-power-naps-and-why-theyre-so-damne-1401366016
* Brain Hacks
* http://www.cracked.com/article_20166_5-brain-hacks-that-give-you-mind-blowing-powers.html?wa_user1=4&wa_user2=Science&wa_user3=article&wa_user4=recommended
* BASH sockets
* http://hacktux.com/bash/socket
* http://terminallinux.org/p/69/
* Debian Jessie daily builds (June 25th): http://d-i.debian.org/daily-images/amd64/20140625-00:18/netboot/gtk/debian-installer/amd64/
* NFSv4: https://help.ubuntu.com/community/NFSv4Howto
* Nettle/libhogweed crypto: http://www.lysator.liu.se/~nisse/nettle/nettle.html#Example
* Debian RAMdisks: http://reboot.pro/topic/14547-linux-load-your-root-partition-to-ram-and-boot-it/
* Zeo
* https://forum.quantifiedself.com/showthread.php?tid=1421
* http://www.cpaptalk.com/viewtopic/t98659/New-Zeo-Sleep-Monitor-for-Bedside-Units.html
* https://github.com/zeoeng/zeo-android-api
* http://eric-blue.com/2013/06/09/life-beyond-zeo/
======Other Days======
======December 26th, 2014======
=====old user removal=====
I set about removing old/stale users... ended up with a list of 80 candidates.
Each time I do this I effectively re-implement the functionality, although I was surprised to see a rather complete attempt done just last fall hiding out in an **~/ldap/** directory within $HOME.
I wrote a new script to assist in identifying candidates for deletion. I based it on the directory modify times (if any file changes, its parent directory will also change). That script, called userpruning, is as follows:
#!/bin/bash
#
# userpruning - a script to identify LAIR accounts that are over 2 years idle
#
# meant to be run on the fileserver
cd /export/home
now=$(date +%s)
# for each user
for user in `/bin/ls -1Ad [h-z]*`; do
newflag="off"
logage=$(cat /tmp/LAST | grep "\<${user}\>" | cut -c44-80)
if [ "${logage}" = "**Never logged in**" ]; then
oldness="${now}"
NLI="{NLI}"
else
logage=$(date -d "`cat /tmp/LAST | grep \"\<${user}\>\" | cut -c44-80`" +%s)
oldness=$((${now}-${logage}))
NLI=
fi
if [ "${oldness}" -gt 63072000 ]; then
# for each directory in that user's account
for dir in `find ${user} -type d | tr ' ' '^' | grep -v 'Maildir' | grep -v '.pinerc'`; do
dirname=$(echo ${dir} | tr '^' ' ')
modate=$(stat "${dirname}" | grep '^Modify:' | cut -d' ' -f2)
age=$(date -d "${modate}" +%s)
oldness=$((${now}-${age}))
if [ "${oldness}" -lt 63072000 ]; then
echo -n "${NLI}[${user}] /home/${dirname} has "
stat ${dirname} | grep '^Modify:' | cut -d' ' -f2
echo -n "Omit? "
read answer
if [ "${answer}" = "n" ]; then
newflag="on"
break
fi
fi
done
else
newflag="on"
fi
if [ "${newflag}" = "off" ]; then
echo "${NLI}${user}:${oldness}"
echo "${user}:${oldness}:${NLI}" >> /tmp/usercandidatesfordeletion
fi
done
=====ldaptool=====
I also ran my ldaptool script, although once again I've missed the deadline of the semester, so I was (once again) unable to use the removal logic. But still, getting closer...
class LDAP groups have been emptied.
=====PHP errors=====
I took another stab at eliminating the PHP errors being experienced. I may have achieved success.
====/var/www/lab46web/lib/plugins/ircpost/action.php====
On line 46 of this particular file the web server would regularly report in the logs the following PHP warning:
2014/12/25 06:28:24 [error] 1376#0: *5627 FastCGI sent in stderr: "PHP message: PHP Warning: Illegal string offset 'save' in /var/www/lab46web/lib/plugins/ircpost/action.php on line 46" while reading r esponse header from upstream, client: 23.95.18.177, server: 10.80.2.18, request: "GET /start?do=login§ok=a569363ced996ec2e453fe9922b75482 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock: ", host: "lab46.corning-cc.edu", referrer: "http://lab46.corning-cc.edu/"
===Original code===
Here is what originally was present:
44 function handle_act_preprocess(&$event, $param){
45
46 if(strtolower($event->data['save']) != "save") return;
47
Apparently due to a change in major versions/evolving functionality, this 2006-era PHP code would no longer work cleanly. It was suggested it was the transition to PHP 5.4 that caused behavioral changes, which could still be true, but I did not specifically test whether this issue was attributed to that (I do suspect it is a versioning thing... going from a squeeze-era PHP to jessie-- 4 years of PHP development).
===Fixed code===
The fix was apparently the inclusion of **isset()** in my check:
44 function handle_act_preprocess(&$event, $param){
45
46 if(!isset($event->data['save'])) return;
47 if(strtolower($event->data['save']) != "save") return;
48
Useful URLs:
* https://forge.typo3.org/issues/52373
* http://forum.codefuture.co.uk/showthread.php?tid=73460&pid=77209
* http://stackoverflow.com/questions/22279230/how-to-fix-warning-illegal-string-offset-in-php
The last one I found most actionable. The first two were informative in providing a good explanation of the particular problem.
====/var/www/lab46web/lib/plugins/statdisplay/helper/log.php====
On line 53 of this file, another issue was being frequently reported.
2014/12/25 13:17:01 [error] 5058#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning: filesize(): stat failed for access.log in /var/www/lab46web/lib/plugins/statdisplay/helper/log.php on line 53" while reading response header from upstream, client: 10.80.1.1, server: 10.80.2.18, request: "GET /lib/exe/indexer.php?id=start&1419531421 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "www", referrer: "http://www/"
Turns out the solution to this was far simpler; in **/var/www/lab46web/lib/plugins/statdisplay/conf/default.php**, the following line:
$conf['accesslog'] = 'access.log';
merely needed changing to this:
$conf['accesslog'] = '/var/log/nginx/access.log';
======December 25th, 2014======
=====www has 2 IPs=====
To better log connections coming in from RR, I set up www to have 2 network interfaces (one on each subnet), and set up a DNS/DHCP entry on juicebox.
www now answers to .18 on both the .1 and .2 subnets.
======December 24th, 2014======
=====wwwnew becomes www=====
I took advantage of some downtime and kicked www over to wwwold, and wwwnew replaced it as 'www'.
Everything seemed to work just fine, with the exception of repositories.
=====dokuwiki updated=====
I also updated the wiki to the latest release.
======December 9th, 2014======
=====LAIRbackup fall2014=====
The great data backup of the semester has commenced. VM dumps and user home directories were backed up onto an external drive.
=====sokraits reboot=====
After a semester of near-uninterrupted performance... sokraits suffered a reboot during an attempt to back up backed up home directories.
It turns out the sokraits-halfadder NIC may have gone bad, so the card was replaced.
An additional attempt at running with a 3.16 kernel was tried- no success. I may have to try running both peers at 3.16 to see if it makes any difference.
^ [[haas/status/status_201411|Previous Month]] | ^ [[:haas:status|Current Month]] | ^ [[haas/status/status_201503|Next Month]] |