Hier een kleine mini-howto om een mailtje in je mailbox te krijgen welke ports niet meer up to date zijn.
Deze howto gaat er van uit dat je al eens je ports geupdated hebt via cvsup.
[b]Update:[/b] script toegevoegd die de snelste cvsup server uitzoekt.
Voor dit stukje script is het pakket portupgrade nodig‚ deze gaan we nu installeren:
[shell]cd /usr/ports/sysutils/portupgrade && make install clean[/shell]
De volgende stap is het script maken‚ zet je script op een goede plaats. Ik gebruik hier /usr/local/etc/scripts
[shell]mkdir /usr/local/etc/scripts
cd /usr/local/etc/scripts
touch update.sh
chmod +x update.sh
vi update.sh[/shell]
Voeg de volgende regels toe (druk i om in te voegen):
[shell]#!/bin/sh
/usr/local/sbin/portsclean -CD
/usr/local/bin/cvsup -L -g 2 /usr/local/etc/cvsup/ports-all
/usr/local/sbin/portsdb -uU
/usr/local/sbin/portversion -v | /usr/bin/grep needs | /usr/bin/mail -s “Ports die niet up to date zijn” jemail@adres[/shell]
Verander wel je mail adres 🙂
Korte uitleg van het script:
Regel 1: maakt alle ports clean en haalt alle tar’s weg (bespaart ruimte).
Regel 2: Haalt de nieuwste ports op.
Regel 3: Updated de index zodat het zoeken van ports goed gaat.
Regel 4: Vergelijkt de geinstalleerde port met de beschikbare en stuurt een mail naar je toe met welke niet op to date zijn.
Als laatste nog je crontab bewerken‚ zodat het automagisch gecontroleerd word.
[shell]vi /etc/crontab[/shell]
Voeg deze regel toe:
[shell]#up to date check
0 4 * * * root /usr/local/etc/scripts/update.sh[/shell]
Elke nacht om 4 uur wordt het script nu gedraaid.
[b]Update:[/b]
Er is een handige utility die kijkt welke cvsup server het snelste is installeer daarvoor:
[shell]cd /usr/ports/sysutils/fastest_cvsup/
make install clean[/shell]
Nu moeten we ervoor zorgen dat de output in de cvsup file komt daarvoor heb ik het volgende scriptje geschreven:
[file]#!/bin/sh
cvsup=` fastest_cvsup -Q -c local`
cat /usr/local/etc/cvsup/ports-all2 |sed “s/deserver/$cvsup/” > /usr/local/etc/scripts/ports-file[/file]
(niet vergeten even chmod +x cvsup.sh te doen)
Hier staat het script in /usr/local/etc/scripts/cvsup.sh
Om dit script te laten werken heb ik de orginele ports-all gekoppierd naar /usr/local/etc/cvsup/ports-all2
en de volgende regel veranderd in:
[file]*default host=deserver[/file]
Daarnaast moet je een regel toevoegen en wijzigingen in update.sh
[file]/usr/local/etc/scripts/cvsup.sh
/usr/local/bin/cvsup -g -L 2 /usr/local/etc/scripts/ports-file[/file]