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]
Anonymous says
dit scrippie gebruik ik altijd om mijn source + ports te updaten scheelt me weer typen 😉
mischien heb je er ook wat aan.
ik heb hem ook nog is aan me /usr/sbin ge-symlinked zodat het gewoon een systeem commando is 🙂
#!/bin/sh
echo “wat wil je updaten ? source , ports ?”
read update
if [ “$update” = ports ]; then
cd /usr/ports && cvsup -g -L2 ports-supfile &&
cd /var/db/pkg && portupgrade -i -m”-DWITHOUT_X11″ *
fi
if [ “$update” = source ]; then
cd /usr/src && cvsup -g -L2 stable-supfile
fi
die paden naar je ports-supfile en stable-supfile moet jezelf maar aanpassen zoals jij het hebt staan 🙂
Anonymous says
werkt als een zonnetje 😛
alleen: cvsup -L -g 2
moet zijn: cvsup -g -L 2
Anonymous says
Hey,
Dit script ziet er vrijwel het zelfde uit qua werking als wat ik al een poos heb draaien…
Maby heb je dr wat aan…
http://megaworld.concepts.nl/freebsd/cvsupdate.tar.gz
Groeten,
Marius / Dj MegaWorld
megaworld says
Ondertussen is deze file verhuist naar:
http://www.wokkel.com/cvsupdate.tgz