Procedure to check if all the services of Dream University are up and running

Fri, 05 Jun 2009 22:57:39 -0000
eng, etiopia, pdo, tips

Tenth day in Addis

If a machine blocks pings, use arping instead.

1. Test DHCP:

$ sudo ifdown eth0
$ sudo ifup eth0
$ ifconfig

2. Test the DNS:

# See if the DNS machine is on
# The network
$ ping -n 192.168.0.1

# See if the DNS resolves names
$ host www.dream.edu.et

3. Test the gateway:

# Ping the gateway
$ ping gateway
# Ping an outside host
$ ping -n 10.4.15.6

4. Test the proxy:

# Ping the proxy
$ ping proxy
# Open a web page and see if it displays
# See if it caches
http_proxy=http://proxy.dream.edu.et:3030/ wget -S -O/dev/null http://www.enricozini.org  2>&1 | grep X-Cache

5. Test the mail server:

$ ping smtp
$ nmap smtp -p 25 |grep 25/tcp
$ if nmap gateway -p 25 |grep 25/tcp | grep -q open ; then echo "It works"; fi
$ send a mail and see if you receive it

To do more advanced network and service monitoring, try nagios:

http://www.nagios.org/

http://en.wikipedia.org/wiki/Nagios

New useful tools seen today

wget - The non-interactive network downloader.

Special devices

/dev/null:

On read, there is no data.

On write, discards data.

/dev/zero:

On read, reads an infininte amount of zero bits.

On write, discards data.

/dev/random, /dev/urandom

On read, reads random bits.

On write, discards data.

Difference: /dev/random is cryptographically secure, but it can hang waiting for system events

Example uses:

wget -O/dev/null http://www.example.org

dd if=/dev/zero of=testdisk bs=1M count=50
mke2fs testdisk
sudo mount -o loop testdisk  /mnt

Tiny little commands

true - do nothing, successfully

false - do nothing, unsuccessfully

yes - output a string repeatedly until killed

Example uses:

while /bin/true; do echo ciao; done

Using /bin/false as a shell

yes | boring-tool-that-asks-lots-of-silly-questions

Some more shell syntax

2>&1 Redirects the standard error in the standard output

2> Redirects the standard error instead of the standard output

Some people run commands ignoring the standard error: command 2> /dev/null this causes unexpected error messages to go unnoticed: please do not do it.

What to check if a machine is very slow

See if the ram is full: $ free If it is, you see what are the fattest programs using top, pressing M to sort by memory usage.

See if there are lots of programs competing for CPU: $ top

Check if you have I/O bottlenecks: $ vmstat (but I don't know how to read it)

For a desktop on older hardware, you can try xubuntu instead of ubuntu

More VIM command mode

Command mode allows to perform various text editing functions.

You work by performing operations on selected blocks of text.

Some common operations:

y: copy ("yank")

p: paste

P: paste before

d: cut ("delete")

c: change

i: insert

`a: append

.: repeat last operation

Some common blocks:

w: word

}: paragraph

left and right arrow: one character left or right

up and down arrow: this line and the one on top or below

f letter: from the cursor until the given letter

v: selection

V: line selection

^V: block selection

Examples:

yw: copy word

dw: cut word

yy: copy line

dd: cut line

V (select lines) y: copy a selection of lines

V (select lines) d: cut a selection of lines

p: paste

The best way to learn more vim is always to run vimtutor.

Installing squirrelmail

To install squirrelmail:

1. apt-get install squirrelmail

2. /usr/sbin/squirrelmail-config and configure IMAP and SMTP.

In our case, since we use IMAPS, the IMAP server is imap.dream.edu.et, port 993, secure IMAP enabled and SMTP is smtp.dream.edu.et. 3. Read /usr/share/doc/squirrelmail/README.Debian.gz (with zless) for how to proceed with setup. A short summary: * link /etc/squirrelmail/apache.conf into the apache conf.d directory * customise /etc/squirrelmail/apache.conf for example setting up the virtual hosts, or running it only on SSL

To have different virtual hosts over HTTPS, you need to have a different IP for every virtual host: name based virtual hosts do not work on HTTPS.

You can configure multiple IP addresses on the same computer: use network interfaces named: eth0:1, eth0:2, eth0:3... These are called interface aliases.

You cannot setup interface aliases using the graphical network configuration and you need to add them in /etc/network/interfaces:

    iface eth0:1 inet static
          address 192.168.0.201
          netmask 255.255.255.0
          gateway 192.168.0.3
    auto eth0:1

This is the trick commonly used to put different virtual HTTPS hosts on the same computer.

Links

squid documentation:

http://www.squid-cache.org/Doc/

http://www.squid-cache.org/Doc/FAQ/

http://www.deckle.co.za/squid-users-guide/Main_Page

Shell programming:

http://www.freeos.com/guides/lsst/

http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

http://www.tinker.ncsu.edu/LEGO/shell_help.html

Performance analysis:

http://flaviostechnotalk.com/wordpress/index.php/2005/06/05/performance-analysis-on-linux/

http://www.cyberciti.biz/faqs/2006/07/linux-performance-tools-to.php

http://searchopensource.techtarget.com/tip/1,289483,sid39_gci952332,00.html (not reviewed)