Doorgaan naar hoofdcontent

Saved by the bell

dsystem is een knipoog naar systemd, het systeem dat het wel eens even allemaal zou gaan regelen in de linuxwereld. Al is dsystem in eerste instantie vernoemd naar de auteur.
Dsystem draait elke 24 uur (op een vast tijdstip) of tijdens de start van de computer. Maar wat als dat samenvalt? Dan heb je twee keer dsystem aan het werk, en dat is ongewenst. Om dat te voorkomen controleert dsystem eerst of er niet een lock file staat in /local/var/run. Als die er niet is, schrijft dsystem een lock file. Zo wordt gegarandeerd dat er maar e1n instantie van dsystem draait.
Dsystem geeft system info, maakt backups, en doet upgrades. Om dsystem zelf te upgraden is er echter een apart programma nodig. Dsystem kan niet zichzelf upgraden. Dat wordt dus gedaan door dupdsys. Ze worden achter elkaar aangeroepen door cron. Om te voorkomen dat dupdsys direct dsystem gaat overschrijven, controleert dupdsys op de lock file van dsystem.
In de praktijk komt dat nauwelijks voor, debian cron wacht keurig op het afronden van elk script alvorens het nieuwe script te starten. Maar het kan toch fout gaan als boottime vlak voor of na de 24 uurs routine plaats vind.. De eerste dupdsys wacht keurig op dsystem. Maar de tweede dsystem stopt onmiddelijk en geeft daarmee het groene licht aan de tweede dupdsys. Gelukkig controleert die ook op een lock file. Als het bijgaande plaatje illustreert.
Het was toeval dat ik die extra controle schreef. Toevallig ontwikkelde ik dupdsys op mijn antieke laptop waar geen debian, maar slackware op draait. Cron staat daar geen boottime aanwijzingen toe. Dus plaatste ik ze in /etc/rc.local In rc.local moet je elk script in de background zetten, wat betekent dat na de start het volgende script meteen start. Omdat dit niet de bedoeling was met dupdsys had ik dus de truuk bedacht met de controle op de lock file van dsystem.
Nooit gedacht aan de mogelijkheid die vandaag bij toeval op trad. Maar het ging goed. Ik vraag me af of de F-35 van dit soort gelukkig programmeren afhangt. Wiens aankomst ik mocht aanschouwen op de eerste rang, niet op de eretribune, maar op mijn luie bank thuis. Ik woon toch maar mooi.


Reacties

Populaire posts van deze blog

Migratie server met rsync

De hardware waarop mijn server draaide was nog goed, maar wat traag. Ik had een kandidaat om de nieuwe server op te installeren. Maar met de software was eigenlijk niets mis, dus in plaats van een nieuwe install, besloot ik de software te klonen naar de nieuwe server. Hierbij maakte ik gebruik van ploplinux via pxe boot . Verder was het plan om met rsync de software (inclusief user data) over te zetten. Dit heeft als voordeel dat de operatie niet in één keer hoeft te worden afgerond. Na een eerste rsync waarbij de bulk wordt overgezet, kunnen de laatste wijzigingen nog altijd op het laatste moment gesynchroniseerd worden. Het klonen van een computer heeft ook een paar (operationele) nadelen. Om te beginnen mogen de servers (oud en nieuw) niet tegelijkertijd op het netwerk actief zijn. Ten tweede hoeven de omstandigheden op de kloon niet persé exact hetzelfde te zijn. Hieronder in het verslag mijn workaround: Ik begon dus met een pxeboot met ploplinux op de nieuwe server. Op de h...

Maillist using procmail

OS: UNIX in general PACKAGE: procmail Why Some time ago I received a list of email addresses wich I needed to sent a bulk message to. Because I didn't had an easy solution like copy-paste and typing some easy comments, I started to look for a recipe with procmail. I found one here . This recipe is just like so many UNIX recipes: nice, but it has to be tweaked before it's ready to serve. dedicated user First of all: assign this procmail rules to a dedicated UNIX user. It will prevent mixing up with procmail rules in your own account. Of course it is more professional this way :-) Make sure that your MTA can deliver email to this user, also make sure this user can send email assigning a different user like the sendmail -f option. In sendmail, use the virtuserstable. controling the mail list I created three brands of procmail rules: open, semi-open and closed. Closed is a list to wich only the owner can send email to, and of course he is also the only one who can put...

Onderzoeksdata redden van kapotte computers

Eerder op facebook gepubliceerd op 02-10-2016 Dagboek van een systeembeheerder Op een dag werd ik bij een computer geroepen waar data opstonden van een onderzoek dat een tijd geleden was gedaan en al bijna vergeten. Eerder die dag herinnerde een wetenschapper zich deze data, die plotseling toch belangrijk waren en liever gisteren dan vandaag van die computer afmoesten om in veiligheid te worden gesteld. Of wij dat niet even konden oplossen? Het probleem met de computer was dat het niet verbonden was met het netwerk en de floppydrive niet meer werkte. Ter plaatse aangekomen constateerde ik dat het ding geen standaardspul was. Maar hij zag er wel indrukwekkend uit. Het was een enorme toren die niet onder mijn buro zou passen. Waarschijnlijk clandestien ingekocht voor een speciaal onderzoek. Maar geen netwerkkaart. Waar ik toch niks aan zou hebben gehad, want onze netwerksoftware stond er niet op. Maar uiteraard had het ding wel een parallelle poort. Dus ik haalde van boven een st...