En av våre lesere spurte meg her en dag om det var lettvint å hacke sammen noe python-kode for å automatisk lese opp en melding på bestemte tidspunkter. Det er det forsåvidt, men som en vis mann sa en gang, hvis linux kan gjøre noe er det ingen grunn til at du skal gjøre det selv, og dette er nettopp et slikt tilfelle, siden oppgaven kan løses med en cronjobb og en lydspiller for kommandolinjen.
For å lese opp en melding finnes et utall muligheter. En enkel løsning er å lese inn meldingen og lagre som mp3 eller wav, og spille den av fra kommandolinjen. På Mac er for eksempel programmet
afplay installert som standard, og kan spille en del forskjellige lydfilformater. På linux finnes det en haug med alternativer, men har du for eksempel en Raspberry Pi med debian skal
aplay i prinsippet funke rett ut av boksen. Har lagret lydfilen din som
message.mp3 kan du da spille den av ved å skrive
aplay message.mp3
Et annet frekt alternativ kan være å bruke en tekstleser. Igjen, på Mac finnes
say installert som standard, så om du skriver
say "Biblioteket stenger om ti minutter"
vil du høre en vennlig, digital stemme som muligens strever litt med norsk uttale. På linux finnes også flere alternativer, se for eksempel
her.
Når du har etablert hva du må gjøre for å få meldingen din lest opp kan vi gå videre til å få dette til å skje automatisk på bestemte tidspunkter, ved hjelp av cron.
cron er en innebygget tjeneste på Mac og linux som utfører én ting (i tråd med unix-filosofien, som sier at man skal lage verktøy som gjør én ting, og gjør den bra), nemlig å utføre kommandoer på faste tidspunkter. Disse kommandoene spesifiseres i en cron table, eller crontab, og det finnes en for systemet og en for hver bruker. For å redigere din egen crontab åpner du en terminal, og skriver
crontab -e
Hvis du ikke har lagt inn noen cronjobber fra før får du da opp en tom tekstfil i din favoritt-editor. Hvis du nå for eksempel vil spille av en beskjed hver hverdag, klokken 18.30, og hver lørdag klokken 15.30, skriver du noe slikt:
30 18 * * 1-5 aplay message.mp3
30 15 * * 6 aplay message.mp3
Så lagrer du filen, og alt er i boks. Så lenge maskinen står på vil disse kommandoene bli kjørt på de spesifiserte tidspunktene. Syntaxen er som følger: I den første kolonnen står minutter, i den andre timer, i den tredje dag i måneden, i den fjerde måned, i den femte ukedag (0 er søndag, 6 er lørdag) og til slutt skriver du kommandoen som skal kjøres. Det vi har gjort her er altså på den første linjen å si at når klokken er 18.30, uansett hvilken dato og måned, hvis ukedagen er mandag til fredag, skal kommandoen
aplay message.mp3 utføres, og på den andre linjen sier vi at hvis klokken er 15.30, uansett dato og måned, hvis dagen er en lørdag, skal den samme kommandoen kjøres.
Hvis du skulle ønske å spille flere forskjellige beskjeder, på forskjellige tidspunkter, er det bare å lage flere forskjellige lydfiler og legge til flere linjer i crontaben. Lettvint, eller hur?
Comments