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]] |