Dovecot update

Zo moet je ruim een week wachten om je update script te testen en zo krijg je er meteen een paar extra voor je kiezen:

Arkon wil update
Date: Today 07:00:19

dovecot-common dovecot-imapd

Meteen maar installeren dus:

Arkon:~# aptitude upgrade
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Building tag database... Done
The following packages will be upgraded:
  dovecot-common dovecot-imapd
2 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1680kB of archives. After unpacking 20.5kB will be used.
Do you want to continue? [Y/n/?] y
Get:1 http://security.debian.org etch/updates/main dovecot-common 1.0.rc15-2etch4 [1133kB]
Get:2 http://security.debian.org etch/updates/main dovecot-imapd 1.0.rc15-2etch4 [547kB]
Fetched 1680kB in 3s (437kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 15696 files and directories currently installed.)
Preparing to replace dovecot-common 1.0.rc15-2etch3 (using .../dovecot-common_1.0.rc15-2etch4_i386.deb) ...
Stopping mail server: dovecot .
Unpacking replacement dovecot-common ...
Preparing to replace dovecot-imapd 1.0.rc15-2etch3 (using .../dovecot-imapd_1.0.rc15-2etch4_i386.deb) ...
Stopping mail server: dovecot .
Unpacking replacement dovecot-imapd ...
Setting up dovecot-common (1.0.rc15-2etch4) ...

Configuration file `/etc/dovecot/dovecot.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : background this process to examine the situation
 The default action is to keep your current version.
*** dovecot.conf (Y/I/N/O/D/Z) [default=N] ?
You already have ssl certs for dovecot.
Starting mail server: dovecot.

Setting up dovecot-imapd (1.0.rc15-2etch4) ...
Starting mail server: dovecot.

Nog meer updates, lighttpd

Wederom staat er een update voor lighttpd klaar. Hopelijk lost dit meteen het niet reageren van de website op.

Arkon wil update
From: root
To: anywhere@localhost.net
Date: Today 07:00:22
lighttpd
Arkon:~# aptitude upgrade
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Building tag database... Done
The following packages will be upgraded:
lighttpd
1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 289kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n/?] y
Get:1 http://security.debian.org etch/updates/main lighttpd 1.4.13-4etch6 [289kB]
Fetched 289kB in 1s (247kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 15696 files and directories currently installed.)
Preparing to replace lighttpd 1.4.13-4etch5 (using .../lighttpd_1.4.13-4etch6_i386.deb) ...
Stopping web server: lighttpd.
Unpacking replacement lighttpd ...
Setting up lighttpd (1.4.13-4etch6) ...
Starting web server: lighttpd.

Lighttpd staakt

Op de een of andere manier is me vanmorgen na het plaatsen van het update bericht lighttpd aan het staken geslagen. Totaal geen reactie meer.

Voor zover ik kan zien draait ie echter wel gewoon:

Arkon:~# ps -e | grep light
19975 ?        00:00:02 lighttpd

Zometeen de logs dus maar eens doorspitten om te kijken of ik daar nog iets in kan vinden. Met het volgende commando herstellen we de zaak weer:

Arkon:~# /etc/init.d/lighttpd restart
Stopping web server: lighttpd.
Starting web server: lighttpd.
Arkon:~# ps -e | grep light
29021 ?        00:00:00 lighttpd

Toevoeging 07-03-2008 om 20:08

Blijkbaar heb ik last gehad van een conflict tussen Lighttpd en aptitude. Na het posten of bewerken van een bericht bleef de webserver stil. Het process bleef lopen en ik kan in de logs niets vinden. Na het uitvoeren van de update reageert de webserver echter weer zoals het hoort.

Update script (2)

Het heeft even geduurd maar Arkon wil nu een update hebben. Zoals je hier kunt zien heb ik in navolging van Henk van de Kamer een update script geïnstalleerd. Heel veel kun je hier niet aan testen, zolang er geen update is krijg je ook geen melding. Ik heb dus de afgelopen anderhalve week regelmatig gekeken of er een update was terwijl ik nog geen mailtje had. Vanaf nu hoef ik dat niet meer te doen want het mailtje is er:

van: root
aan: anywhere@localhost.net
datum: 7 mrt. 2008 07:00
onderwerp: Arkon wil update
lighttpd

Vanavond dus meteen de update maar installeren.

Back online

Afgelopen zondagavond werd ik om 22:09 getroffen door een storing bij @home. Het internet viel weg en nu ik terugdenk heb ik eerder die dag ook al last gehad van storingen op de telefoon (die ik dus ook van @home heb).

Niet online betekend ook dat een thuis-server niet gek veel kan doen. Ik kon er welliswaar vanuit het interne netwerk wel op komen maar ja daar hebben jullie niet veel aan.

Vandaag heb ik na 3 telefoontjes eindelijk de verbinding kunnen herstellen. Het firmware van ’t modem is in elk geval geupdate. Dat ze zoiets niet automagisch kunnen doen.

ssh automatisch inloggen

Zo, weer een stukje verder met het regelwerk. Op het hoefnix forum van Henk van de Kamer vond ik een stukje over het automatisch inloggen met ssh. Dit met behulp van een keypair.

xxx:~$ cd .ssh

xxx:~/.ssh$ ssh-keygen -f {Keynaam} -t rsa -N ''

xxx:~/.ssh$ cat {Keynaam}.pub | ssh inlognaam@hostnaam 'mkdir -m 700 -p .ssh; cat >> .ssh/authorized_keys'

xxx:~/.ssh$ ssh -i {Keynaam} inlognaam@hostnaam

Naast het aanmaken van een keypair heb ik ook nog een aantal aliassen aangemaakt in mijn .bashrc zodat ik niet van elke machine de login, password en ip-adres of hostname hoef te onthouden.

alias sshalias='ssh -i ~/.ssh/{Keynaam} loginnaam@hostnaam'

In bovenstaande code stukken heb ik een aantal waarden veranderd.

  • {Keynaam}: De naam die je het keypair geeft
  • inlognaam: lijkt me duidelijk
  • hostnaam: dns-naam of ip adres van de machine waarnaar je wil connecten
  • sshalias: Het commando waarmee je de login kunt doen op die machine. Als je meerdere aliassen maakt moeten dit dus ook meerdere namen zijn.

Na het aanpassen van .bashrc zul je deze opnieuw moeten inladen om de wijzigingen actief te maken. Dat kan door het opnieuw inloggen maar dit gaat iets vlotter:

Athlan:~# source .bashrc

Let wel, dit is een handig hulpmiddel maar ook potentieel gevaarlijk. Doe dit dus alleen op een machine waarvan je het vertrouwen hebt dat ongewensten hierbij kunnen. Mijn werksysteem thuis vertrouw ik er in elk geval wel mee.

Dit stukje wordt ook geplaatst in de rubriek scripts. Het is namelijk niet alleen handig voor het inloggen met ssh, maar kan ook in scripts gebruikt worden om bepaalde taken op een andere machine uit te voeren. Denk bijvoorbeeld aan de backup.

Backup script

Backup was 1 van de meest belangrijke dingen die ik nog niet geregeld had. Ik heb nu een script overgenomen vanaf de site van Henk van de Kamer.

#!/bin/bash
# Aanpassingen:         Marcel Dijkerman
#
#       * MD 2008-02-26 Bestandslocatie's gewijzigd
#
# Original Author:      Henk van de Kamer (henk@vandekamer.nscom)
# Created:              08-02-2006
# Modified:             09-02-2006
#
# Algemene variabelen
#
pass="--password=geheim"

# Maak juiste back-up, 1e van de maand full, rest van de dagen een differential
#
cd /backup
if [ `date -d 'yesterday' +%-d` -eq 1 ]; then
  date > lastfull.txt
  tar -czf full.tgz /var/www/
  mysqldump --protocol=tcp --skip-opt $pass -A | gzip -9 > fulldb.gz
else
  tar -czf diff.tgz --newer "`cat lastfull.txt`" /var/www
  mysqldump --protocol=tcp --skip-opt $pass -A > diffdb
  zcat fulldb.gz | diff -cbB - diffdb | gzip -9 > diffdb.gz
  rm diffdb
fi

Uiteraard zijn de bestandslocatie’s van hem anders dus die zijn veranderd.

Meteen dit script ook maar toegevoegd in de crontab op een nachtelijk uur zodat ik niet alsnog een geautomatisch ding handmatig hoef te starten.

Na het toevoegen van dit berichtje kan ik meteen testen of het geheel naar behoren werkt.

Op het wensenlijstje staat nu nog het automagisch veranderen van de namen van de backupbestanden zodat daar een datum of weeknummer instaat en het geheel vervolgens offsite neerzetten. Ik heb op zich toegang tot de server van een vriend van me en die wil me daar vast de ruimte voor vrijmaken. Ik kan dan meteen de wederdienst voor hem bewijzen.

Update script

Het eerste in de verzameling scripts. Mijn to-do lijstje wat enkel nog in mijn hoofd zit had dit nog op het programma staan. Op de site van Henk van de Kamer kwam ik een update script tegen waarmee een aptitude upgrade run gesimuleerd wordt. Als er dan updates klaar staan dan wordt er een mailtje verzonden zodat je de update kunt starten.

Hieronder vindt je het script wat ik van hem geleend heb. Voor mijn eigen referentie heb ik hier de kopie ervan bewaart:

#!/bin/bash

# Simuleer een upgrade
#
cd ~/scripts
aptitude update >/dev/null
aptitude -y -s upgrade | sed -re '/ded\.$/,$ d' -e '/led:$/,$ d' -e '1,/ded:$/ d' > mailfile
if [ -s mailfile ]; then
  cat mailfile | mail -s "`hostname -s` wil update" ********@********.nl
fi
rm mailfile

Uiteraard horen er andere tekens op de plek van de sterretjes die je ziet. Ik heb om spam te voorkomen mijn mailadres verborgen.

Het script doet bij het aanroepen wel iets, er wordt namelijk zowiezo een mailfile aangemaakt. Tot op heden heb ik nog geen update hoeven installeren dus of ik een mail krijg moet ik nog even afwachten. Het mailen zelf heb ik al wel getest dus daar zal het niet aan liggen.

Tijd

Vandaag kwam ik erachter dat ik om 10 uur ’s avonds al voor de volgende dag aan het posten was. Ergens klopt er iets niet. Toch maar even de tijd goed zetten.

Je kan de tijd van de server natuurlijk handmatig instellen. Maar uiteindelijk zal de tijd gaan verlopen. Het automatiseren hiervan is dus handiger. Hiervoor installeer ik de pakketten ntp en ntpdate

Arkon:~# aptitude install ntp ntpdate

Als alles goed gaat dan wordt de NTP service na de installatie automatisch gestart. We kunnen dit controleren met het volgende commande:

Arkon:~# ntpq -p

Dit commando draait een NTP query en de optie -p zorgt ervoor dat er een lijst van de servers geprint wordt die in /etc/ntp.conf genoemd worden. Ook laat het van deze servers de status zien.

Voor de zekerheid nog even de tijdzone controleren en/of goedzetten met:

Arkon:~# tzconfig
Your current time zone is set to Europe/Amsterdam
Do you want to change that? [n]: n
Your time zone will not be changed

En zoals je ziet staat mijn tijdzone prima aangezien ik in Nederland woon en daar ook mijn server heb staan.

Als laatste met date nog even kijken of de aanpassingen succesvol waren:

Arkon:~# date
Sat Feb 23 23:02:26 CET 2008

En ook dat klopt, CET oftewel Central European Time en de juiste tijd ook nog eens.

Vanaf nu zal het tijdstip wat er bij mijn blogposts staat dus ook werkelijk kloppen.