commit
					12f0d2ae82
				
				 39 changed files with 1115 additions and 0 deletions
			
			
		| @ -0,0 +1,5 @@@@ -0,0 +1,5 @@ | ||||
| # Ignore the renderd site | ||||
| /site/ | ||||
| 
 | ||||
| # Ignore the photo's | ||||
| /photo/*/*.jpg | ||||
| @ -0,0 +1,10 @@@@ -0,0 +1,10 @@ | ||||
| 
 | ||||
| ----------------------------------------------------------------------------------- | ||||
|                                  © R.P. Neeleman | ||||
| ----------------------------------------------------------------------------------- | ||||
| 
 | ||||
|       </pre> | ||||
|     </td></tr></table> | ||||
|   </body> | ||||
| 
 | ||||
| </html> | ||||
| @ -0,0 +1,10 @@@@ -0,0 +1,10 @@ | ||||
| <html> | ||||
|   <head> | ||||
|     <title>Sciuro.org</title> | ||||
|   </head> | ||||
| 
 | ||||
|   <body bgcolor='0066FF' text='white' link='white' vlink='white'> | ||||
|     <table><tr><td width=82> | ||||
|       <pre> | ||||
|   <a href='__SITEURL__/index.html'>Home</a>  |  <a href='__SITEURL__/blog/index.html'>Blog</a>  |  <a href='__SITEURL__/photo/index.html'>Photo's</a>  |  <a href='__SITEURL__/howto/index.html'>Howto</a>  |  <a href='__SITEURL__/servers/index.html'>Servers</a>  |  <a href='__SITEURL__/links.html'>Links</a>  |  <a href='__SITEURL__/about.html'>About</a>  |  <a href='__SITEURL__/contact.html'>Contact</a> | ||||
| ----------------------------------------------------------------------------------- | ||||
| @ -0,0 +1,2 @@@@ -0,0 +1,2 @@ | ||||
|                              \ <a href='__SITEURL__/servers/index.html'>Layout</a>  |  <a href='__SITEURL__/servers/status.html'>Status</a>   |  <a href='__SITEURL__/servers/graph.html'>Graphs</a> / | ||||
|                               +-----------------------------+ | ||||
| @ -0,0 +1,24 @@@@ -0,0 +1,24 @@ | ||||
| <b>About</b> | ||||
| <img src='__SITEURL__/images/foto_me.jpg' align='right'> | ||||
| My name is Rogier, or Roger as most non-dutch speakers | ||||
| will prefer. I am a 33 year old computer engineer, | ||||
| living in The Netherlands. | ||||
| 
 | ||||
| Besides being a computer nerd, I spend my time with | ||||
| Scouting, Geocaching, hiking and biking. And sometimes | ||||
| climbing and skiing. | ||||
| 
 | ||||
| <b>The name Sciuro</b> | ||||
| The name Sciuro is a nickname I got from some Swiss | ||||
| scouts. In Switserland it's common to give every scout | ||||
| a nickname and they came up with the nickname Sciuro. | ||||
| It's pronounced as t.si.uro and meaning 'squirrel' in | ||||
| Esperanto. If you don't know what esperanto is, <a href='http://s.sciuro.org/zcm6w' target='new'>here</a> | ||||
| is an explaination. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,6 @@@@ -0,0 +1,6 @@ | ||||
| <b>Geek and Poke</b> | ||||
| 
 | ||||
| I found a new cartoon. It's a couple of years old, but is a very good one! | ||||
| Especially for computer geeks. Made by Oliver Widder, an IT-guy from Hamburg, | ||||
| Germany. Look for his cartoons on <a href='http://geek-and-poke.com/' target=new>http://geek-and-poke.com/</a>. | ||||
| 
 | ||||
| @ -0,0 +1,56 @@@@ -0,0 +1,56 @@ | ||||
| <b>Can't assign requested address</b> | ||||
| 
 | ||||
| Using Mac OS X 10.9 (Mavericks) I noticed that my browser wasn't working. Except | ||||
| some sites like google. Almost nothing works anymore. Except IPV6 connections. | ||||
| There was no problem with that. Also incomming connections on IPV4 like SSH or | ||||
| VNC works. | ||||
| 
 | ||||
| So I tried to connect from the terminal: | ||||
| 
 | ||||
|   imac:~ rogier$ telnet www.nu.nl 80 | ||||
|   Trying 62.69.174.78... | ||||
|   telnet: connect to address 62.69.174.78: Can't assign requested address | ||||
|   Trying 62.69.166.18... | ||||
|   telnet: connect to address 62.69.166.18: Can't assign requested address | ||||
|   Trying 62.69.166.15... | ||||
|   telnet: connect to address 62.69.166.15: Can't assign requested address | ||||
|   Trying 62.69.174.75... | ||||
|   telnet: connect to address 62.69.174.75: Can't assign requested address | ||||
|   telnet: Unable to connect to remote host | ||||
| 
 | ||||
| No connection possible. So what went wrong? | ||||
| 
 | ||||
| The netstat -a gives me really a lot of "CLOSED" connections. That could not be a | ||||
| good sign. After some digging on the internet I came to an article on the Apple | ||||
| discussion list about this problem. It turns out that there is (probably) a bug | ||||
| in Mavericks. It gives you a lot of LAST_ACK connections. You can check your | ||||
| connection state with the following command: | ||||
| 
 | ||||
|   netstat -n | egrep '^(tcp|udp)' | awk '{print $NF}' | psort | ||||
| 
 | ||||
| If you do the same for IPV6, you get a whole different situation: | ||||
| 
 | ||||
|   netstat -l | ||||
| 
 | ||||
| It turns out that after 20 to 25 days, something went very very wrong inside your | ||||
| mac. The only thing that will help is rebooting the whole system. Looking at my | ||||
| own system, I rebooted 24 day's ago. | ||||
| 
 | ||||
|   imac:~ rogier$ last reboot | ||||
|   reboot ~ Sun Jan 12 11:15 | ||||
|   reboot ~ Thu Dec 19 10:53 | ||||
|   reboot ~ Wed Dec 11 08:31 | ||||
|   reboot ~ Sat Dec 7 09:56 | ||||
|   reboot ~ Fri Dec 6 07:24 | ||||
|   reboot ~ Thu Dec 5 14:31 | ||||
| 
 | ||||
| 
 | ||||
| Anyone a solution? | ||||
| 
 | ||||
| Update: A temporary solution could be: Thanks <a href='http://nslog.com/2013/12/14/lost_internet_connection' target=new>Erik J. Barzeski</a> | ||||
| 
 | ||||
|   sudo ifconfig en0 down | ||||
|   sudo route flush | ||||
|   sudo ifconfig en0 up | ||||
| 
 | ||||
| More information: <a href='https://discussions.apple.com/thread/5551686' target=new>https://discussions.apple.com/thread/5551686</a> | ||||
| @ -0,0 +1,33 @@@@ -0,0 +1,33 @@ | ||||
| <b>Plotting users on facebook</b> | ||||
| 
 | ||||
| I was playing with Munin, the "network resource monitoring tool". But you can also | ||||
| plot other things than CPU usage or network traffic. As long as you can capture it | ||||
| in a value. | ||||
| 
 | ||||
| My default chat application is not facebook, but IRC. To chat with facebook users, | ||||
| I use a ZNC bouncer together with Bitlbee. | ||||
| 
 | ||||
|    +---------+    +---------+    +---------+    +---------+ | ||||
|    |         |    |         |    |         |    |         | | ||||
|    | Client  |--->| ZNC     |--->| Bitlbee |--->| Facebook| | ||||
|    | (me)    |    | (log)   |    |         |    |         | | ||||
|    +---------+    +---------+    +---------+    +---------+ | ||||
| 
 | ||||
| The ZNC bouncer is logging the users coming and going to the channel when they | ||||
| use facebook. I used the Munin plugin "loggrep_" with the next config on that | ||||
| logfile: | ||||
| 
 | ||||
|   [loggrep_facebook] | ||||
|     user rogier | ||||
|     env.regex localhost sets mode | ||||
|     env.label Facebook users | ||||
|     env.logfile /home/rogier/.znc/users/rogier/moddata/log/facebook.log | ||||
|     env.title User count on facebook | ||||
| 
 | ||||
| So I filter the logfile for the text "localhost sets mode" because when a user | ||||
| came online, he get's a +v from bitlbee. After a while, you will get the next | ||||
| graph. | ||||
| 
 | ||||
| <center> | ||||
| <img src='http://noc.sciuro.org/munin/sciuro.org/irc.sciuro.org/loggrep_facebook-week.png'> | ||||
| </center> | ||||
| @ -0,0 +1,20 @@@@ -0,0 +1,20 @@ | ||||
| <b>A new text based website</b> | ||||
| 
 | ||||
| Yes, a new text based website! After some time without a website, with a website | ||||
| based on a CMS, and with some 'almost finished' websites, I feel the need to make | ||||
| a website with the following criteria: | ||||
| 
 | ||||
| -Fast | ||||
| -Simple | ||||
| -Logica during generating | ||||
| 
 | ||||
| I found jekyll, but it took me to much time to learn and I ran into some simple | ||||
| problems. So I made my own CMS like environment. At this moment written in Bash. | ||||
| Maybe in the future (Ugh) I will rewrite it in Python, but till then I got a | ||||
| working solution. | ||||
| 
 | ||||
| It relies on a script, a directory structure and some text files. Nothing more. | ||||
| The script is looking through the directories for text files and reorder,  | ||||
| combine and replace the files for the website itself. | ||||
| 
 | ||||
| I hope this one will work a little bit longer. :-) | ||||
| @ -0,0 +1,10 @@@@ -0,0 +1,10 @@ | ||||
| <b>Contact</b> | ||||
| 
 | ||||
| You can reach me as follows: | ||||
| 
 | ||||
| <b>E-Mail:</b>  <a href='mailto:info@sciuro.org'>info@sciuro.org</a> | ||||
| <b>IRC:</b>     Sciuro on FreeNode, IRCNet, EFNet and Scoutlink | ||||
| <b>Twitter:</b> <a href='http://www.twitter.com/sciuro_nl' target=new>Sciuro_NL</a> | ||||
| <b>ICQ:</b>     17135284 | ||||
| 
 | ||||
| <b>GPG</b>:     You can find my pgp/gpg key <a href='__SITEURL__/files/pgp.txt'>here</a> | ||||
| @ -0,0 +1,90 @@@@ -0,0 +1,90 @@ | ||||
| -----BEGIN PGP PUBLIC KEY BLOCK----- | ||||
| Version: GnuPG/MacGPG2 v2.0.22 (Darwin) | ||||
| Comment: GPGTools - https://gpgtools.org | ||||
| 
 | ||||
| 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 | ||||
| =OyHW | ||||
| -----END PGP PUBLIC KEY BLOCK----- | ||||
| 
 | ||||
| @ -0,0 +1,209 @@@@ -0,0 +1,209 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # Variables | ||||
| SITEURL="/newsite" | ||||
| LAYOUT=_layout | ||||
| SITE=site | ||||
| EXTRA='images scripts files' | ||||
| SERVERS='314.sciuro.org chip.sciuro.org skippy.sciuro.org slappy.sciuro.org irc.sciuro.org lists.laurentiusgroep.nl' | ||||
| 
 | ||||
| # Prereq | ||||
| mkdir -p $SITE | ||||
| 
 | ||||
| # Root pagina's | ||||
| rm -rf $SITE/*.html | ||||
| for i in `ls *.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   cat $LAYOUT/header.html >> $SITE/$FILENAME.html | ||||
|   cat $i >> $SITE/$FILENAME.html | ||||
|   cat $LAYOUT/footer.html >> $SITE/$FILENAME.html | ||||
| done | ||||
| 
 | ||||
| # Server directory | ||||
| mkdir -p $SITE/servers/ | ||||
| rm -rf $SITE/servers/*.html | ||||
| 
 | ||||
| for i in `ls servers/*.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   cat $LAYOUT/header.html >> $SITE/$FILENAME.html | ||||
|   cat $LAYOUT/servers.html >> $SITE/$FILENAME.html | ||||
|   cat $i >> $SITE/$FILENAME.html | ||||
|   cat $LAYOUT/footer.html >> $SITE/$FILENAME.html | ||||
| done | ||||
| 
 | ||||
| for i in $SERVERS; do | ||||
|   HNAME=`echo $i | cut -d\. -f1` | ||||
|   DNAME=`echo $i | cut -d\. -f2,3 --output-delimiter=\.` | ||||
|   FILENAME=servers/graph-$HNAME | ||||
|   cat $LAYOUT/header.html >> $SITE/$FILENAME.html | ||||
|   cat $LAYOUT/servers.html >> $SITE/$FILENAME.html | ||||
|   cat servers/graph.txt >> $SITE/$FILENAME.html | ||||
|   echo "" >> $SITE/$FILENAME.html | ||||
|   echo "<center>" >> $SITE/$FILENAME.html | ||||
|   echo "<img src='http://noc.sciuro.org/munin/$DNAME/$i/cpu-day.png'>" >> $SITE/$FILENAME.html | ||||
|   echo "<img src='http://noc.sciuro.org/munin/$DNAME/$i/memory-day.png'>" >> $SITE/$FILENAME.html | ||||
|   echo "<img src='http://noc.sciuro.org/munin/$DNAME/$i/if_eth0-day.png'>" >> $SITE/$FILENAME.html | ||||
|   echo "</center>" >> $SITE/$FILENAME.html | ||||
|   cat $LAYOUT/footer.html >> $SITE/$FILENAME.html | ||||
| done | ||||
| 
 | ||||
| # Howto directory | ||||
| mkdir -p $SITE/howto/ | ||||
| rm -rf $SITE/howto/*.html | ||||
| 
 | ||||
| cat $LAYOUT/header.html >> $SITE/howto/index.html | ||||
| echo "<b>Howto's</b>" >> $SITE/howto/index.html | ||||
| echo "" >> $SITE/howto/index.html | ||||
| echo "Some howto's I wrote. If something is wrong, or you need help, please send me" >> $SITE/howto/index.html | ||||
| echo "a message." >> $SITE/howto/index.html | ||||
| echo "" >> $SITE/howto/index.html | ||||
| for i in `ls howto/*.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   HTT=`echo $FILENAME |cut -d\/ -f2` | ||||
|   echo "-<a href='__SITEURL__/$FILENAME.html'>$HTT</a>" >> $SITE/howto/index.html | ||||
| done | ||||
| cat $LAYOUT/footer.html >> $SITE/howto/index.html | ||||
| 
 | ||||
| for i in `ls howto/*.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   cat $LAYOUT/header.html >> $SITE/$FILENAME.html | ||||
|   cat $i >> $SITE/$FILENAME.html | ||||
|   MODTIME=`date -r $i +%A\ %B%e\ %Y,\ %R` | ||||
|   echo "" >> $SITE/$FILENAME.html | ||||
|   echo "<a href='mailto:react@sciuro.org?SUBJECT=$FILENAME'>React to Howto</a>" >> $SITE/$FILENAME.html | ||||
|   echo "Last modification: $MODTIME" >> $SITE/$FILENAME.html | ||||
|   cat $LAYOUT/footer.html >> $SITE/$FILENAME.html | ||||
| done | ||||
| 
 | ||||
| # Blog pages | ||||
| mkdir -p $SITE/blog/ | ||||
| rm -rf $SITE/blog/*.html | ||||
| 
 | ||||
| cat $LAYOUT/header.html >> $SITE/blog/index.html | ||||
| echo "<b>Blog</b>" >> $SITE/blog/index.html | ||||
| for i in `ls -r blog/*.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   BTITLE=`echo $FILENAME |cut -d\/ -f2 |cut -b12-` | ||||
|   BFILEDATE=`echo $FILENAME |cut -d\/ -f2 |cut -b-10` | ||||
|   CURMONTH=`date -d$BFILEDATE +%B\ %Y` | ||||
|   if [ "$CURMONTH" != "$LASTMONTH" ]; then | ||||
|     LASTMONTH=$CURMONTH | ||||
|     echo "" >> $SITE/blog/index.html | ||||
|     echo "$CURMONTH" >> $SITE/blog/index.html | ||||
|   fi | ||||
|   echo "-<a href='__SITEURL__/$FILENAME.html'>$BTITLE</a>" >> $SITE/blog/index.html | ||||
| done | ||||
| cat $LAYOUT/footer.html >> $SITE/blog/index.html | ||||
| 
 | ||||
| for i in `ls blog/*.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   cat $LAYOUT/header.html >> $SITE/$FILENAME.html | ||||
|   BFILEDATE=`echo $FILENAME |cut -d\/ -f2 |cut -b-10` | ||||
|   BDATE=`date -d$BFILEDATE +%A\ %B\ %e\ %Y` | ||||
|   echo $BDATE >> $SITE/$FILENAME.html | ||||
|   echo "" >> $SITE/$FILENAME.html | ||||
|   cat $i >> $SITE/$FILENAME.html | ||||
|   BLOGID=`echo $FILENAME |cut -d\/ -f2` | ||||
|   echo "" >> $SITE/$FILENAME.html | ||||
|   echo "<a href='mailto:react@sciuro.org?SUBJECT=$BLOGID'>React to blog</a>" >> $SITE/$FILENAME.html | ||||
|   cat $LAYOUT/footer.html >> $SITE/$FILENAME.html | ||||
| done | ||||
| 
 | ||||
| # Photo pages | ||||
| mkdir -p $SITE/photo/ | ||||
| rm -rf $SITE/photo/*.html | ||||
| 
 | ||||
| cat $LAYOUT/header.html >> $SITE/photo/index.html | ||||
| echo "<b>Photo's</b>" >> $SITE/photo/index.html | ||||
| for i in `ls -r photo/*.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   PTITLE=`echo $FILENAME |cut -d\/ -f2 |cut -b12-` | ||||
|   PFILEDATE=`echo $FILENAME |cut -d\/ -f2 |cut -b-10` | ||||
|   CURMONTH=`date -d$PFILEDATE +%B\ %Y` | ||||
|   if [ "$CURMONTH" != "$LASTMONTH" ]; then | ||||
|     LASTMONTH=$CURMONTH | ||||
|     echo "" >> $SITE/photo/index.html | ||||
|     echo "$CURMONTH" >> $SITE/photo/index.html | ||||
|   fi | ||||
|   echo "-<a href='__SITEURL__/$FILENAME.html'>$PTITLE</a>" >> $SITE/photo/index.html | ||||
| done | ||||
| cat $LAYOUT/footer.html >> $SITE/photo/index.html | ||||
| 
 | ||||
| for i in `ls photo/*.txt`; do | ||||
|   FILENAME=`echo $i |cut -d\. -f1` | ||||
|   BFILEDATE=`echo $FILENAME |cut -d\/ -f2 |cut -b-10` | ||||
|   BDATE=`date -d$BFILEDATE +%A\ %B\ %e\ %Y` | ||||
|   BLOGID=`echo $FILENAME |cut -d\/ -f2` | ||||
|   DIRNAME=`echo $FILENAME |cut -d\/ -f2` | ||||
| 
 | ||||
|   mkdir -p $SITE/$FILENAME/normal/ | ||||
|   mkdir -p $SITE/$FILENAME/thumbs/ | ||||
|   #rm -rf $SITE/$FILENAME/thumbs/*.jpg | ||||
|   rm -rf $SITE/photo/$DIRNAME/*.html | ||||
| 
 | ||||
|   cat $LAYOUT/header.html >> $SITE/$FILENAME.html | ||||
|   cat $i >> $SITE/$FILENAME.html | ||||
|   echo "" >> $SITE/$FILENAME.html | ||||
|   echo $BDATE >> $SITE/$FILENAME.html | ||||
|   echo "" >> $SITE/$FILENAME.html | ||||
| 
 | ||||
|   echo "<center><table border='0'>" >> $SITE/$FILENAME.html | ||||
|   T=0 | ||||
|   rename 'y/A-Z/a-z/' $FILENAME/* | ||||
|   for j in `ls $FILENAME/*.jpg`; do | ||||
|     if [ $T == '0' ]; then | ||||
|       echo "<tr><td>" >> $SITE/$FILENAME.html | ||||
|       T=$((T+1)) | ||||
|     elif [ $T == '5' ]; then | ||||
|       echo "</td></tr><tr><td>" >> $SITE/$FILENAME.html | ||||
|       T=1 | ||||
|     else | ||||
|       echo "</td><td>" >> $SITE/$FILENAME.html | ||||
|       T=$((T+1)) | ||||
|     fi | ||||
| 
 | ||||
|     IMAGENAME=`echo $j |cut -d\/ -f3` | ||||
|     if [ ! -f $SITE/photo/$DIRNAME/thumbs/$IMAGENAME ]; then | ||||
|       convert -resize 120 photo/$DIRNAME/$IMAGENAME $SITE/photo/$DIRNAME/thumbs/$IMAGENAME | ||||
|     fi | ||||
| 
 | ||||
|     if [ ! -f $SITE/photo/$DIRNAME/normal/$IMAGENAME ]; then | ||||
|       convert -resize 480 photo/$DIRNAME/$IMAGENAME $SITE/photo/$DIRNAME/normal/$IMAGENAME | ||||
|     fi | ||||
| 
 | ||||
|     NAME=`echo $IMAGENAME |cut -d\. -f1` | ||||
| 
 | ||||
|     echo "<a href='__SITEURL__/photo/$DIRNAME/$NAME.html'><img src='__SITEURL__/photo/$DIRNAME/thumbs/$IMAGENAME' width=120px></a>" >> $SITE/$FILENAME.html | ||||
| 
 | ||||
|     # Picture page | ||||
| 
 | ||||
|     cat $LAYOUT/header.html >> $SITE/photo/$DIRNAME/$NAME.html | ||||
|     cat $i >> $SITE/photo/$DIRNAME/$NAME.html | ||||
|     echo "" >> $SITE/photo/$DIRNAME/$NAME.html | ||||
|     echo $BDATE >> $SITE/photo/$DIRNAME/$NAME.html | ||||
|     echo "" >> $SITE/photo/$DIRNAME/$NAME.html | ||||
|     echo "<center><a href='__SITEURL__/$FILENAME.html'>index</a></center>" >> $SITE/photo/$DIRNAME/$NAME.html | ||||
|     echo "<center><img src='__SITEURL__/photo/$DIRNAME/normal/$IMAGENAME' width=480px></center>" >> $SITE/photo/$DIRNAME/$NAME.html | ||||
|     cat $LAYOUT/footer.html >> $SITE/photo/$DIRNAME/$NAME.html | ||||
| 
 | ||||
|   done | ||||
| 
 | ||||
|   echo "</table></center>" >> $SITE/$FILENAME.html | ||||
| 
 | ||||
|   cat $LAYOUT/footer.html >> $SITE/$FILENAME.html | ||||
| done | ||||
| 
 | ||||
| 
 | ||||
| # Other directories | ||||
| for i in $EXTRA; do | ||||
|   rm -rf $SITE/$i | ||||
|   cp -a $i $SITE/$i | ||||
| done | ||||
| 
 | ||||
| # Replace variables | ||||
| for i in `find $SITE/ -name *.html`; do | ||||
|   sed -i 's/__SITEURL__/\/newsite/g' $i | ||||
| done | ||||
| 
 | ||||
| # Publish | ||||
| rsync --delete --recursive $SITE/* 314:/usr/share/mini-httpd/html/newsite/ | ||||
| @ -0,0 +1,24 @@@@ -0,0 +1,24 @@ | ||||
| <b>Always the same error during restarting apache</b> | ||||
| 
 | ||||
| If you restart your Apache webserver, you could get the following error message: | ||||
| 
 | ||||
|   Could not reliably determine the server's fully qualified domain name, | ||||
|   using 127.0.0.1 for ServerName | ||||
| 
 | ||||
| The reason is because your netwerk is not completly setup properly. | ||||
| 
 | ||||
| -Check if your hostname is set in /etc/hostname | ||||
| -Check if your domainname is set in /etc/resolv.conf | ||||
| 
 | ||||
| And the final trick: Put in your /etc/hosts file the next line: | ||||
| 
 | ||||
|   IP-addres fully-quallified-hostname small-hostname | ||||
| 
 | ||||
| Do not swap the fully-quallified-hostname and the small-hostname, because Apache | ||||
| only looks at the first entry and that one should be the fully quallified hostname | ||||
| 
 | ||||
| So for example, for me it will become: | ||||
| 
 | ||||
|   192.168.1.1 scrat.sciuro.org scrat | ||||
| 
 | ||||
| Restart your apache and the message is gone. | ||||
| @ -0,0 +1,49 @@@@ -0,0 +1,49 @@ | ||||
| <b>Proxy HTTP requests in Apache 2.2 with mod_proxy and mod_balancer</b> | ||||
| 
 | ||||
| You can actually use an Apache web server as a front web server to proxy | ||||
| specified requests to other web servers. For example to load balance your backend | ||||
| servers or to make a failover system in case of an failure. Yes, we are talking | ||||
| about high availability! | ||||
| 
 | ||||
| <b>Simple</b> | ||||
| First enable the modules mod_proxy and mod_proxy_http. Now we can do a simple | ||||
| request forward. Of course we use a Debian system, so to enable the proxy modules | ||||
| we will do: | ||||
| 
 | ||||
|   a2enmod proxy proxy_http | ||||
|   /etc/init.d/apache2 restart | ||||
| 
 | ||||
| Now we can make use of the proxy capabilities of Apache. Put the next part in | ||||
| your virtual host or any other place. | ||||
| 
 | ||||
|   ProxyPass /application http://servername:port/somethingelse/ | ||||
|   ProxyPassReverse /application http://servername:port/somethingelse/ | ||||
| 
 | ||||
| <b>Loadbalance and/or failover</b> | ||||
| For this part we need some more modules. So we enable them. You can also enable | ||||
| the ftp and ajp connectors if you need them. It's exactly the same as with the | ||||
| mod_proxy_http. | ||||
| 
 | ||||
|   a2enmod proxy proxy_http proxy_balancer | ||||
|   /etc/init.d/apache2 restart | ||||
| 
 | ||||
| Now we can have fun! The ProxyPreserveHost is technically not needed. But there | ||||
| are some more options in the proxy module that makes life a little bit easier. | ||||
| We will not proxy requests for /context/static. All the rest will be proxied to | ||||
| the right server. Server1 is active now. Server2 is disabled. (maintenance?) So | ||||
| if Server1 will fail, everybody is moved to a balanced cluster of Server3 and | ||||
| Server4. I know, it's a little bit strange setup, but it's only an example. | ||||
| 
 | ||||
|   ProxyPreserveHost On | ||||
|   ProxyPass /context/static ! | ||||
|   ProxyPass /context balancer://clustername/something | ||||
| 
 | ||||
|   <Proxy balancer://clustername> | ||||
|     BalancerMember http://servername1:port lbset=0 route=server1 | ||||
|     # The next server is temporary disabled. | ||||
|     BalancerMember http://servername2:port lbset=0 route=server2 status=+D | ||||
|     # | ||||
|     # Backupservers if other servers failed | ||||
|     BalancerMember http://servername3:port lbset=1 route=server3 | ||||
|     BalancerMember http://servername4:port lbset=1 route=server4 | ||||
|   </Proxy> | ||||
| @ -0,0 +1,28 @@@@ -0,0 +1,28 @@ | ||||
| <b>Apache webserver and rewrite rules</b> | ||||
| 
 | ||||
| Here are some rewrite codes I sometimes use. Rewrite is a very powerful Apache | ||||
| module and so almost everything is possible. Some examples. | ||||
| 
 | ||||
| To rewrite your http://www.oldsite.org/something to the new URL | ||||
| http://www.newsite.org/something, you can use the next code: | ||||
| 
 | ||||
|   RewriteCond %{HTTP_HOST} ^www\.oldsite.org [NC] | ||||
|   RewriteRule ^ http://www.newsite.org%{REQUEST_URI} [L,R=301] | ||||
| 
 | ||||
| To do an action when the user don't have a special cookie, for example to force | ||||
| somebody to the login page or redirect him to a welcome page. Take a look at the | ||||
| second rule. This one prevents looping over these rule again and again. | ||||
| 
 | ||||
|   RewriteCond %{HTTP_COOKIE} !logincookie | ||||
|   RewriteCond %{QUERY_STRING} !page=login | ||||
|   RewriteRule ^(.*)$ %{REQUEST_URI}?page=login [L,R] | ||||
| 
 | ||||
| To rewrite a request if it's a search result from google. | ||||
| 
 | ||||
|   RewriteCond %{HTTP_REFERER} ^http://www\.google [NC] | ||||
|   RewriteRule ^ http://www.somewhere.com/something.gif [R] | ||||
| 
 | ||||
| To simple forward your request to your internal server2 on port 8080: | ||||
| 
 | ||||
|   RewriteEngine On | ||||
|   RewriteRule ^/app/(.*)$ http://server2:8080/app1/$1 [P] | ||||
| @ -0,0 +1,14 @@@@ -0,0 +1,14 @@ | ||||
| <b>Clustered AwStats</b> | ||||
| 
 | ||||
| To use AWStats in a multiple vhost environment, you can make a new crontab for | ||||
| every new site. But that's not very smart. I made this script to look at the | ||||
| AWStats configuration files and parse all the access.log.1.gz files for all the | ||||
| different sites. | ||||
| 
 | ||||
| It's made for my servers, so probably you have to change something for your own | ||||
| environment. Make sure your AWStats config match this config and exchange SSH | ||||
| key's for the AWStatst user to the webservers (read)! The access logging of the | ||||
| Apache servers in the example below should be | ||||
| /var/log/apache2/sitename/access.log.1.gz | ||||
| 
 | ||||
| You can find the script <a href='__SITEURL__/scripts/awstats_cron'>here</a>. | ||||
| @ -0,0 +1,25 @@@@ -0,0 +1,25 @@ | ||||
| <b>backup and restoring partitions</b> | ||||
| 
 | ||||
| You always wonder how to make a backup of a complete disk? For example to rescue | ||||
| the disk, or you want to save te data for later on? Or mayby to make an image | ||||
| and distribute it over a lot of computers? Here is how. | ||||
| 
 | ||||
| Make a backup of a partition (this could also be the whole disk): | ||||
| 
 | ||||
| One-to-one: | ||||
|   dd if=/dev/hdx1 of=/path/to/image | ||||
| 
 | ||||
| To a compressed image: | ||||
|   dd if=/dev/hdx2 | gzip > /path/to/image.gz | ||||
| 
 | ||||
| To mount the partition on a local directory: | ||||
|   mount -o loop /path/to/image /mnt | ||||
| 
 | ||||
| To restore a partition (first make sure the partition on disk is the same size or | ||||
| bigger than the original): | ||||
| 
 | ||||
| One-to-one: | ||||
|   dd if=/path/to/image of=/dev/hdx1 | ||||
| 
 | ||||
| From a compressed image: | ||||
|   gzip -dc /path/to/image.gz |dd of=/dev/hdx2 | ||||
| @ -0,0 +1,119 @@@@ -0,0 +1,119 @@ | ||||
| <b>Install Debian testing on an iBook G4</b> | ||||
| 
 | ||||
| Fact one, I still have an iBook G4 and little use to it. Fact two, sometimes I | ||||
| still miss my linux desktop. (Mac OS X is not that bad) Combine those two facts | ||||
| and we are going to install Debian Testing on an iBook G4. | ||||
| 
 | ||||
| <b>Getting the software</b> | ||||
| I used the netinstaller from | ||||
| http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/powerpc/iso-cd/ | ||||
| Burn the debian-testing-powerpc-netinst.iso to a CD. (I know, it's an old medium) | ||||
| 
 | ||||
| <b>Do an installation</b> | ||||
| Boot your iBook and insert the CD. Press 'c' and hold while or before | ||||
| Apple-Boot-Sound to start from CD. Maybe you have to boot it again if you are too | ||||
| slow. He asks you what you want to do. type | ||||
| 
 | ||||
|   install video=ofonly | ||||
| 
 | ||||
| The debian installer doesn't like the iBook's graphic card. Proceed like a normal | ||||
| Debian installation, until the disk layout. | ||||
| 
 | ||||
| <b>Disk partitioning</b> | ||||
| Choose for 'guided partitioning'. Then you will get an reconfigured partitionschema | ||||
| which you can change. You will see an extra partition, the 'Apple' type partition. | ||||
| Change your disk partition like you want, but keep the first Apple partition!!! | ||||
| Otherwise it can't format the drive. I did it my way the first time and had some | ||||
| problems formatting my drive. Maybe it's a bug in testing, but I couldn't find the | ||||
| Apple type, but it worked using the 'guided partitioning'. | ||||
| 
 | ||||
| This is my partition table: | ||||
| 
 | ||||
|   IDE1 master (hda) - 120.0 GB FUJITSU MHV2120AT | ||||
|   #1 32.3 kB Apple | ||||
|   #2 1.0 MB B K boot untitled | ||||
|   #3 7.0 GB f ext4 untitled / | ||||
|   #4 3.5 GB f swap swap swap | ||||
|   #5 109.6 GB f ext4 untitled /home | ||||
| 
 | ||||
| If you got the error 'Partition map has no partition map entry' after writing the | ||||
| partition table to disk, you forgot to make the first Apple partition. | ||||
| 
 | ||||
| Your system will reboot. | ||||
| 
 | ||||
| Choose the parts you want to install. I simply only choose to install basics and | ||||
| laptop. All the rest I will do by myself. | ||||
| 
 | ||||
| Reboot into your new OS. The first thing I noticed was the fan. It sounds like a | ||||
| broken fan. After about 5 minutes it scaled down to zero and the noise was gone. | ||||
| 
 | ||||
| <b>Console tools</b> | ||||
| Just aptitude install gpm. This will install gpm, the mouse interface for the | ||||
| console. An USB mouse will work out of the box. | ||||
| 
 | ||||
| <b>X</b> | ||||
| Installing X is a bit strange in Debian because of the Radeon Mobility 9200. Main | ||||
| problem is the framebuffer loaded at boot time. The next can be done by every | ||||
| windowmanager, but I prefer KDE. Make sure your /etc/apt/sources.list contains | ||||
| besides main, also the contrib and non-free repo's. | ||||
| 
 | ||||
|   aptitude install xorg | ||||
|   aptitude install kde-standard | ||||
|   aptitude install firmware-linux | ||||
| 
 | ||||
| Do not reboot now! It will freeze during boot. Add the following into your | ||||
| /etc/yaboot.conf: | ||||
| 
 | ||||
|   image=/boot/vmlinux | ||||
|   label=Linux | ||||
|   read-only | ||||
|   initrd=/boot/initrd.img | ||||
|   append="video=ofonly video=radeonfb:off radeon.agpmode=-1" | ||||
| 
 | ||||
|   image=/boot/vmlinux.old | ||||
|   label=old | ||||
|   read-only | ||||
|   initrd=/boot/initrd.img.old | ||||
|   append="video=ofonly video=radeonfb:off radeon.agpmode=-1" | ||||
| 
 | ||||
| Then run: | ||||
| 
 | ||||
|   root@thuu:~# ybin -v | ||||
|   ybin: Finding OpenFirmware device path to `/dev/hda2'... | ||||
|   ybin: Installing first stage bootstrap /usr/lib/yaboot/ofboot onto /dev/hda2... | ||||
|   ybin: Installing primary bootstrap /usr/lib/yaboot/yaboot onto /dev/hda2... | ||||
|   ybin: Installing /etc/yaboot.conf onto /dev/hda2... | ||||
|   ybin: Setting attributes on ofboot... | ||||
|   ybin: Setting attributes on yaboot... | ||||
|   ybin: Setting attributes on yaboot.conf... | ||||
|   ybin: Blessing /dev/hda2 with Holy Penguin Pee... | ||||
|   ybin: Updating OpenFirmware boot-device variable in nvram... | ||||
| 
 | ||||
| Now you may reboot. If you accidentally reboot your system before changing | ||||
| yaboot and you are stuk at the message: | ||||
| 
 | ||||
|   conflicting fb hw usage radeondrmfb | ||||
| 
 | ||||
| Give during boot time in the yaboot menu the command: | ||||
| 
 | ||||
|   boot: Linux video=radeonfb:off radeon.agpmode=-1 | ||||
| 
 | ||||
| It will boot again with the right options. | ||||
| 
 | ||||
| <b>Wireless</b> | ||||
| First, make sure in your /etc/apt/sources.list contains the contrib packages. | ||||
| Update your repository and install the package b43-fwcutter. Download the | ||||
| firmware for the b43 from | ||||
| 
 | ||||
|   http://downloads.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2 | ||||
| 
 | ||||
| Untar the broadcom code and cd into the driver directory | ||||
| 
 | ||||
|   b43-fwcutter -w /lib/firmware/ wl_apsta_mimo.o | ||||
| 
 | ||||
| And your Wireless is working. (can somebody test this again? Maybe I missed | ||||
| something) | ||||
| 
 | ||||
| <b>Bluetooth</b> | ||||
| Bluetooth is working out of the box. Install btscanner to see it for yourself. | ||||
| Config files are in /etc/bluetooth. | ||||
| @ -0,0 +1,16 @@@@ -0,0 +1,16 @@ | ||||
| <b>How to remove debian packages</b> | ||||
| 
 | ||||
| The normal way to remove a Debian package is to use | ||||
| 
 | ||||
|   apt-get remove name | ||||
| Or | ||||
|   aptitude remove name | ||||
| 
 | ||||
| But in this way you are left with a bunch of configuration files. You can remove | ||||
| individual package configuration with: | ||||
| 
 | ||||
|   apt-get purge name | ||||
| 
 | ||||
| Or all those packages that has been removed, but not completely: | ||||
| 
 | ||||
|   dpkg -l | grep ^rc | cut -d' ' -f3|xargs dpkg -P | ||||
| @ -0,0 +1,33 @@@@ -0,0 +1,33 @@ | ||||
| <b>iPhone headset button</b> | ||||
| 
 | ||||
| The headphone of my iPhone has some more capabilities beside taking calls or | ||||
| start and pause music. I found some information on the internet. | ||||
| 
 | ||||
| Incoming call: | ||||
| 1. Press once to pickup the call | ||||
| 2. Press twice to send the call to voicemail. | ||||
| 3. Press and hold center button for about two seconds to decline the call. You | ||||
|    will also hear two low beeps that confirm you the call is declined. | ||||
| 
 | ||||
| While you're in a call, you can simply press once to end the call. | ||||
| 
 | ||||
| While you're in a call and there is a second incoming call, you can: | ||||
| 1. Press once to switch to another call and put the current call on hold. Press | ||||
|    the button again to switch to the first call. | ||||
| 2. Press and hold the button for about two seconds to ignore the second call. | ||||
| 
 | ||||
| While you're not in a call, you can press the button once to activate iPod and | ||||
| playback your music. | ||||
| 
 | ||||
| While you're listening to music in iPod, you can use the button to control the | ||||
| music playback: | ||||
| 1. Press once to pause the song and press again to resume it. | ||||
| 2. Press twice to skip to the next song | ||||
| 3. Press three time to go back to the previous song | ||||
| 
 | ||||
| For iPhone 3GS, the bundled headset is enhanced with volume control buttons. You | ||||
| can use the "+" and "-" buttons to adjust the volume. And, one more thing. You | ||||
| can press and hold the center button to activate voice control, which is a new | ||||
| feature comes with iPhone 3GS. | ||||
| 
 | ||||
| (source: http://rdsbc.blogspot.com/2009/08/tips-iphone-headset-shortcuts.html) | ||||
| @ -0,0 +1,49 @@@@ -0,0 +1,49 @@ | ||||
| <b>Install KiwiIRC on Debian</b> | ||||
| 
 | ||||
| A some people know, I use IRC a lot. Especially in combination with | ||||
| ZNC, a bouncer for all my IRC connections. But sometimes you need an | ||||
| IRC client in a browser with just your own settings. Therefore, how | ||||
| to install the fantastic webbased IRC client Kiwiirc on a Debian based | ||||
| server. | ||||
| 
 | ||||
| I presume you already have git working. Otherwise, install it | ||||
| (apt-get install git). Fist we need a working server with node.js. So | ||||
| let’s install all the software as root: | ||||
| 
 | ||||
|   apt-get install npm | ||||
| 
 | ||||
| The problem is that Debian uses the ‘nodejs’ binary, but the whole rest | ||||
| of the world called this file ‘node’. So we have to link it to the | ||||
| right name before starting the installer. | ||||
| 
 | ||||
|   ln -s /usr/bin/nodejs /usr/bin/node | ||||
| 
 | ||||
| After installing all the software, we could become the user with should | ||||
| run KiwiIRC. Probably you wouldn;t want to run this as root! So find a | ||||
| nice place to store the software (/home/kiwiirc if the user is called | ||||
| kiwiirc) and make a git clone of the software tree. | ||||
| 
 | ||||
|   git clone https://github.com/prawnsalad/KiwiIRC.git && cd KiwiIRC | ||||
| 
 | ||||
| I ran into a problem with ZNC. It wouldn’t connect to ZNC, but it | ||||
| should. After upgrading from stable to the development, it worked. If | ||||
| you have no problems at all, stay with the stable branch. | ||||
| 
 | ||||
|   git checkout development | ||||
| 
 | ||||
| Copy the config file, edit it to your prefecences and do a rebuild. | ||||
| This wil generate all you needed files. Remember that after changing | ||||
| the configfile, you have to run the build script! | ||||
| 
 | ||||
|   cp config.example.js config.js | ||||
|   nano config.js | ||||
|   ./kiwi build | ||||
| 
 | ||||
| After all this trouble, you can start your webbased IRC client! The | ||||
| first is for starting in the background, the second if you want to run | ||||
| it in the forground, (debuging) | ||||
| 
 | ||||
|   ./kiwi start | ||||
|   ./kiwi -f start | ||||
| 
 | ||||
| Happy chatting! | ||||
| @ -0,0 +1,41 @@@@ -0,0 +1,41 @@ | ||||
| <b>LVM cheatsheet</b> | ||||
| 
 | ||||
| Here is a cheatsheet for LVM: | ||||
| 
 | ||||
| LVM exists in the following order: | ||||
| 
 | ||||
| -PV (physical volume) | ||||
| -VG (volume group) | ||||
| -LV (logical volume) | ||||
| 
 | ||||
| Create a physical volume | ||||
| 
 | ||||
|   pvcreate /dev/hdX1 | ||||
|   pvscan | ||||
|   pvdisplay | ||||
| 
 | ||||
| Create a volume group | ||||
| 
 | ||||
|   vgcreate vg_name /dev/hdX1 /dev/hdX2 | ||||
|   vgscan | ||||
|   vgdisplay | ||||
| 
 | ||||
| Create a logical volume | ||||
| 
 | ||||
|   lvcreate -L 10G -n lv_name vg_name | ||||
|   lvscan | ||||
|   lvdisplay | ||||
| 
 | ||||
| Activate an external LVM volume | ||||
| Usefull when you are repairing an external harddisk with a LVM volume. | ||||
| 
 | ||||
|   lvscan | ||||
|   lvchange -a y lv_name | ||||
|   lvscan | ||||
| 
 | ||||
| Disable an external LVM volume | ||||
| Usefull when you are repairing an external harddisk with a LVM volume. | ||||
| 
 | ||||
|   lvscan | ||||
|   lvchange -a n lv_name | ||||
|   lvscan | ||||
| @ -0,0 +1,10 @@@@ -0,0 +1,10 @@ | ||||
| <b>How to backup a MySql database</b> | ||||
| 
 | ||||
| To backup all your databases from MySql, I made the <a href='__SITEURL__/scripts/sqlbackup'>this script</a>. | ||||
| 
 | ||||
| You can run this script from your crontab. Run this every night and it will dump | ||||
| all of your databases added with a date into the directory /backup/sql You can | ||||
| also remove the very old ones by crontab. My crontab looks like the following: | ||||
| 
 | ||||
|   0 0 * * * find /backup/sql/ -mtime +5 -exec rm -rf {} \; | ||||
|   0 0 * * * /usr/local/bin/sqlbackup | ||||
| @ -0,0 +1,22 @@@@ -0,0 +1,22 @@ | ||||
| <b>How to split a big file in smaler ones</b> | ||||
| 
 | ||||
| Sometimes you got the problem that a file is something too big. No problem. There | ||||
| is a solution for that. The command split. | ||||
| 
 | ||||
| Split a file | ||||
| How do we split a file? Simple. To split the file bigfile into smaller files from | ||||
| 100 MB with the name smallfile00, smallfile01, smallfile02 etc. we do: | ||||
| 
 | ||||
|   split -d -b100m bigfile smallfile | ||||
| 
 | ||||
| If you want an extention, some people or program's like that, you can give them | ||||
| an extention: | ||||
| 
 | ||||
|   for i in `ls smallfile*` do mv $i $i.abc; done | ||||
| 
 | ||||
| And you got all smaller files. | ||||
| 
 | ||||
| Join a file | ||||
| Later on, to join the files together, you can use the command cat. | ||||
| 
 | ||||
|   cat smallfile* > bigfile | ||||
| @ -0,0 +1,58 @@@@ -0,0 +1,58 @@ | ||||
| <b>Getting Wolfenstein (wolf) running in Debian</b> | ||||
| 
 | ||||
| Running games in Linux could be a pain in the ass. Here I tried to install | ||||
| Wolfenstein. | ||||
| 
 | ||||
| Install your software. Probebly it goes to /usr/local/games/wolfenstein. And | ||||
| of course make your openGL working. See the big internet for doing this. | ||||
| 
 | ||||
| If you start your game (./wolf) it will come up with the following error: | ||||
| 
 | ||||
| Wolf 1.1b linux-i386 Jan 17 2002 | ||||
| ----- FS_Startup ----- | ||||
| Current search path: | ||||
| /home/rogier/.wolf/main | ||||
| /usr/local/games/wolfenstein/main/mp_pakmaps0.pk3 (21 files) | ||||
| /usr/local/games/wolfenstein/main/mp_pak2.pk3 (3 files) | ||||
| /usr/local/games/wolfenstein/main/mp_pak1.pk3 (308 files) | ||||
| /usr/local/games/wolfenstein/main/mp_pak0.pk3 (783 files) | ||||
| /usr/local/games/wolfenstein/main/pak0.pk3 (4775 files) | ||||
| /usr/local/games/wolfenstein/main | ||||
| ./wolf.x86/main | ||||
| 
 | ||||
| ---------------------- | ||||
| 5890 files in pk3 files | ||||
| execing default.cfg | ||||
| couldn't exec language.cfg | ||||
| couldn't exec wolfconfig_mp.cfg | ||||
| couldn't exec autoexec.cfg | ||||
| Hunk_Clear: reset the hunk ok | ||||
| Joystick is not active. | ||||
| Bypassing CD checks | ||||
| ----- Client Initialization ----- | ||||
| ----- Initializing Renderer ---- | ||||
| ------------------------------- | ||||
| Loaded 714 translation strings from scripts/translation.cfg | ||||
| ----- Client Initialization Complete ----- | ||||
| ----- R_Init ----- | ||||
| ...loading libGL.so: QGL_Init: Can't load libGL.so from /etc/ld.so.conf | ||||
| or current dir: /usr/local/games/wolfenstein/libGL.so: cannot open shared | ||||
| object file: No such file or directory | ||||
| failed | ||||
| ...loading libMesaVoodooGL.so.3.1: QGL_Init: Can't load libMesaVoodooGL.so.3.1 | ||||
| from /etc/ld.so.conf or current dir: | ||||
| /usr/local/games/wolfenstein/libMesaVoodooGL.so.3.1: cannot open shared object | ||||
| file: No such file or directory | ||||
| failed | ||||
| ----- CL_Shutdown ----- | ||||
| RE_Shutdown( 1 ) | ||||
| ----------------------- | ||||
| ----- CL_Shutdown ----- | ||||
| ----------------------- | ||||
| Sys_Error: GLimp_Init() - could not load OpenGL subsystem | ||||
| 
 | ||||
| <b>Solution</b> | ||||
| There is nothing wrong, but Debian is missing a link. So make the link: | ||||
| 
 | ||||
| cd /usr/lib32/ | ||||
| ln -s libGL.so.1 libGL.so | ||||
| After Width: | Height: | Size: 25 KiB | 
| @ -0,0 +1,19 @@@@ -0,0 +1,19 @@ | ||||
|               <b>Welcome to Sciuro.org</b> | ||||
| 
 | ||||
| This is my simple place where I will put my thoughts and           _.-"""-, | ||||
| knowlege on the world wide web.                                  .'  ..::. `\ | ||||
|                                                                 /  .::' `'` / | ||||
| <b>Why is it all text based?</b>                                      / .::' .--.=; | ||||
| After trying different type's of websites and frameworks, I    | ::' /  C ..\ | ||||
| came to the conclusion that they all are slow, difficult       | :: |   \  _.) | ||||
| and not inuitive for a nerd like me. What I liked the most      \ ':|   /  \ | ||||
| was the old text based website. So why not build one. :-)        '-, \./ \)\) | ||||
| Beside that, it's also quite fast on the creepy Dutch               `-|   );/ | ||||
| mobile network.                                                       '--'-' | ||||
| 
 | ||||
| <b>What can I find here?</b> | ||||
| Everything I want. Solutions for problems I faced (<a href='__SITEURL__/howto/'>howto's</a>), scripts I use every | ||||
| day, or ones in a while (<a href='__SITEURL__/scripts/'>scripts</a>), day to day thoughts (<a href='__SITEURL__/blog/'>blog</a>) and pictures | ||||
| (<a href='__SITEURL__/photo/'>photo's</a>). And maybe a lot of other things. | ||||
| 
 | ||||
| Have fun! | ||||
| @ -0,0 +1,15 @@@@ -0,0 +1,15 @@ | ||||
| <b>Links</b> | ||||
| 
 | ||||
| <b>Security</b> | ||||
| -<a href='https://www.gnupg.org/gph/en/manual.html' target=new>GPG handbook</a> | ||||
| -<a href='http://www.phillylinux.org/keys/terminal.html' target=new>GPG keysigning</a> | ||||
| 
 | ||||
| <b>Geocaching</b> | ||||
| -<a href='http://www.geocaching.com/' target=new>Geocaching.com</a> | ||||
| -<a href='http://www.openstreetmap.com' target=new>OSM charts</a> | ||||
| -<a href='http://garmin.openstreetmap.nl' target=new>OSM charts for garmin devices</a> | ||||
| -<a href='#empty' target=new>Routing on OSM charts</a> | ||||
| 
 | ||||
| <b>Scouting</b> | ||||
| -<a href='http://www.scoutlink.net/' target=new>Scoutlink</a> | ||||
| -<a href='http://pe1mew.nl/handboek/' target=new>Jota Handboek</a> | ||||
| @ -0,0 +1 @@@@ -0,0 +1 @@ | ||||
| <b>Winterweer in Bilthoven</b> | ||||
| @ -0,0 +1,4 @@@@ -0,0 +1,4 @@ | ||||
| <b>Pollex autoroute</b> | ||||
| 
 | ||||
| Tijdens een stamopkomst is er een autorally gereden met diverse opdrachten en | ||||
| hindernissen. | ||||
| @ -0,0 +1,3 @@@@ -0,0 +1,3 @@ | ||||
| <b>Bikkelweekend uitzetten</b> | ||||
| 
 | ||||
| Foto's tijdens het uitzetten van het bikkelweekend in Heeze. | ||||
| @ -0,0 +1,3 @@@@ -0,0 +1,3 @@ | ||||
| <b>Zurich</b> | ||||
| 
 | ||||
| Een weekend langs in Zurich. | ||||
| @ -0,0 +1,3 @@@@ -0,0 +1,3 @@ | ||||
| <b>Oud en nieuw 2012-2013</b> | ||||
| 
 | ||||
| In Kandersteg met de LG en PBG. | ||||
| @ -0,0 +1,42 @@@@ -0,0 +1,42 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # Variables | ||||
| BASE_DIR=/opt/awstats | ||||
| DATA_DIR=/opt/awstats-data/data | ||||
| LOGS_DIR=/opt/awstats-data/logs | ||||
| HTML_DIR=/opt/awstats-data/html | ||||
| APACHE_LOG=/var/log/apache2 | ||||
| CONFIG_DIR=$BASE_DIR/wwwroot/cgi-bin | ||||
| 
 | ||||
| # Which servers have all the access.log logfiles | ||||
| SERVERS='server1 server2 server3' | ||||
| 
 | ||||
| # Make a list of all the sites that need parsing | ||||
| SITES=`ls $CONFIG_DIR |egrep '^awstats.*\.conf$' |grep -v awstats.model.conf |sed -e 's/^awstats\.//' -e 's/\.conf$//'` | ||||
| 
 | ||||
| # Start making a simple HTML page with all the sites | ||||
| echo "<center>" > $HTML_DIR/index.html | ||||
| 
 | ||||
| for s in $SITES; do | ||||
| 
 | ||||
|  # Copy the access logging to the local server | ||||
|  for i in $SERVERS; do | ||||
|   scp -q $i:$APACHE_LOG/$s/access.log.1.gz $LOGS_DIR/$i.$s.gz | ||||
|  done | ||||
| 
 | ||||
|  # Combine and sort the logfile's | ||||
|  $BASE_DIR/tools/logresolvemerge.pl $LOGS_DIR/*.$s.gz |gzip > $LOGS_DIR/$s.gz | ||||
| 
 | ||||
|  # Remove the server logfiles | ||||
|  rm $LOGS_DIR/*.$s.gz | ||||
| 
 | ||||
|  # Update the statistics | ||||
|  $BASE_DIR/wwwroot/cgi-bin/awstats.pl -config=$s -update | ||||
| 
 | ||||
|  # Remove the combined logfile | ||||
|  rm $LOGS_DIR/$s.gz | ||||
| 
 | ||||
|  # Write an entry in the HTML file for this website | ||||
|  echo "<a href='http://$s/awstats/awstats.pl'>$s</a><br />" >> $HTML_DIR/index.html | ||||
| 
 | ||||
| done | ||||
| @ -0,0 +1,21 @@@@ -0,0 +1,21 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # Settings | ||||
| MYSQL="$(which mysql)" | ||||
| MYSQLDUMP="$(which mysqldump)" | ||||
| GZIP="$(which gzip)" | ||||
| MyUSER="sys_backup" | ||||
| MyPASS="secretpassword" | ||||
| DIR="/backup/sql" | ||||
| NOW="$(date +"%Y-%m-%d")" | ||||
| 
 | ||||
| # Get all the databases in your server | ||||
| DBS="$($MYSQL -u $MyUSER -p$MyPASS -Bse 'show databases')" | ||||
| 
 | ||||
| for db in $DBS | ||||
| do | ||||
|   if [ "$db" != "information_schema" ]; then | ||||
|     FILE="$DIR/$db.$NOW.gz" | ||||
|     $MYSQLDUMP --routines -u $MyUSER -p$MyPASS $db | $GZIP -9 > $FILE | ||||
|   fi | ||||
| done | ||||
| @ -0,0 +1,5 @@@@ -0,0 +1,5 @@ | ||||
| <b>Graphs</b> | ||||
| 
 | ||||
|                 +-----+------+------+--------+--------+-----+-------+ | ||||
|                 | <a href='__SITEURL__/servers/graph-314.html'>314</a> | <a href='__SITEURL__/servers/graph-chip.html'>Chip</a> | Dale | <a href='__SITEURL__/servers/graph-skippy.html'>Skippy</a> | <a href='__SITEURL__/servers/graph-slappy.html'>Slappy</a> | <a href='__SITEURL__/servers/graph-irc.html'>IRC</a> | <a href='__SITEURL__/servers/graph-lists.html'>Lists</a> | | ||||
|                 +-----+------+------+--------+--------+-----+-------+ | ||||
| @ -0,0 +1,22 @@@@ -0,0 +1,22 @@ | ||||
| <b>Layout servers</b> | ||||
| 
 | ||||
|  +---------+ | ||||
|  |         | | ||||
|  | Router  |---------+-----------+-----------+-----------+ | ||||
|  |         |         |           |           |           | | ||||
|  +---------+         |           |           |           | | ||||
|       |         +---------+ +---------+ +---------+ +---------+ | ||||
|       |         |         | |         | |         | |         | | ||||
|   Internet      | Skippy  | | Slappy  | | IRC     | | Lists   | | ||||
|       |         |         | |         | |         | |         | | ||||
|       |         +---------+ +---------+ +---------+ +---------+ | ||||
|       | | ||||
|       | | ||||
|       +--------------+-----------+-----------+ | ||||
|       |              |           |           | | ||||
|       |              |           |           | | ||||
|       |         +---------+ +---------+ +---------+ | ||||
|       |         |         | |         | |         | | ||||
|       |         | 314     | | Chip    | | Dale    | | ||||
|       |         |         | |         | |         | | ||||
|       |         +---------+ +---------+ +---------+ | ||||
| @ -0,0 +1,13 @@@@ -0,0 +1,13 @@ | ||||
| <b>Server Status</b> | ||||
| 
 | ||||
|  +--------+--------+ | ||||
|  | Server | Status | | ||||
|  +--------+--------+ | ||||
|  | 314    | <font color='00FF00'>Ok</font>     | | ||||
|  | Chip   | <font color='00FF00'>Ok</font>     | | ||||
|  | Dale   | <font color='FF0000'>Error</font>  | | ||||
|  | Skippy | <font color='00FF00'>Ok</font>     | | ||||
|  | Slappy | <font color='00FF00'>Ok</font>     | | ||||
|  | IRC    | <font color='00FF00'>Ok</font>     | | ||||
|  | Lists  | <font color='00FF00'>Ok</font>     | | ||||
|  +--------+--------+ | ||||
					Loading…
					
					
				
		Reference in new issue