Takenplanner

2 KMail voor lokaal gebruik

Linux is een echt netwerksysteem. Vandaar dat het systeem e-mail vaak gebruikt om systeemberichten door te sturen naar de mailbox van de systeembeheerder. Elk Linux systeem heeft een eigen e-mail postkantoor. Dit postkantoor kan gebruikt worden om e-mails te sturen naar elke gebruiker die op het Linux systeem bekend is. Het is eveneens in staat deze e-mails te ontvangen. Via KMail kun je deze lokale e-mail adressen gebruiken.

Om in KMail het lokale postkantoor te kunnen gebruiken, moet je de volgende zaken instellen:

Bij het versturen van een testmail blijkt het verzenden van de mail niet te lukken. Sluit KMail af. Dit is te wijten aan een bug bij het wegschrijven van de Sendmail-locatie naar het configuratiebestand ~/.kde4/share/config/mailtransports. Open dit bestand met een teksteditor en voeg de host-regel toe:
[General]
default-transport=180864089

[Transport 180864089]
host=/usr/sbin/sendmail
id=180864089
name=Sendmail
type=Sendmail

Je kunt jezelf nu e-mails sturen.

De mails die het systeem naar root@localhost stuurt, kun je lezen met de opdracht `sudo mail`. Deze opdracht toont alle ongelezen e-mails. Druk Return om de eerste mail te lezen. Druk Q om het lezen van de mail af te breken en terug naar het overzicht te gaan. Om de volgende mail te lezen, druk je nogmaals Return. Enz. Wanneer je EOF (End Of File) ziet, zijn alle mails gelezen. Mail verlaten doe je door op Q te drukken.

3 Takenplanner

KAlarm

KAlarm is bij openSUSE niet standaard geïnstalleerd. Na de installatie van het pakket kalarm vind je KAlarm terug onder K menu > Programma's > Hulpmiddelen > Persoonlijke alarmplanner.

KAlarm is een persoonlijke berichten, opdrachten en email planner. Je kunt er op zelf gekozen tijdstippen persoonlijke berichten mee op het scherm laten verschijnen, geplande opdrachten uitvoeren, e-mails sturen of een geluidsbestand afspelen.

Herinneringen kunnen ook via de CLI (command line interface of opdrachtregel) of via DBUS berichten (zie verder in de cursus) van programma's ingesteld worden.

Wanneer een Bericht actief wordt, wordt het op alle bureaubladen getoond, zo heb je het zeker gezien. Het bericht venster toont de tijd van het alarm. Er is meestal een knop Uitstellen aanwezig om je de kans te geven later nogmaals herinnerd te worden.

Wanneer een opdracht uitgevoerd wordt, een e-mail verzonden of een geluidsbestand wordt afgespeeld, toont KAlarm niets op het scherm.

Bij het starten van KAlarm toont KAlarm de nog af te werken herinneringen.

Tip: Alle ringvelden in KAlarm hebben een versnelling. Om de waarden in grotere stappen aan te passen, hou je de Shift toets ingedrukt bij het klikken op de pijlknoppen.

Lijst met geplande herinneringen

Het hoofdvenster toont een lijst nog af te werken herinneringen, samen met hun tijd, herhalingsregel, kleur, berichttekst, te tonen bestandsnamen, uit te voeren opdrachten of e-mail onderwerpen. Voor steeds terug komende herinneringen of herinneringen met een voorherinnering wordt de volgende geplande tijd getoond. Een pictogram links van elke herinnering (Bericht, email, bestand of opdracht) is een indicatie voor het type alarm.

Bij een herhalende herinnering wordt het volgende tijdstip getoond en de herhalingsregel (“1 dag” voor een dagelijks terugkerende herinnering, “3 weken” voor een herinnering die om de drie weken op maandag en woensdag doorgaat, “Aanmelden” voor een herinnering bij het aanmelden.

De herinneringen kunnen gesorteerd worden volgens Tijd, Herhalen, Kleur of Bericht, bestand of commando door op de titel van de betreffende kolom te klikken. De sorteervolgorde wordt omgekeerd door nogmaals op dezelfde kolomtitel te klikken.

Als optie kan de Tijd tot de herinnering getoond worden, samen met of in plaats van de Tijd van de herinnering. Om de kolom Tijd tot de herinnering te tonen of te verbergen, gebruik je het menu Beeld > Resterende tijd tot herinnering tonen. Om de kolom Tijd te tonen of te verbergen, gebruik je het menu Beeld > Tijdstippen herinneringen tonen. Je ziet steeds één van deze twee kolommen.

Verlopen herinneringen kun je zichtbaar maken of verbergen via het menu Beeld > Verlopen herinneringen tonen.

Nieuwe herinnering toevoegen

Om een nieuwe herinnering toe te voegen, heb je volgende methoden om het dialoogvenster Nieuwe ...herinnering op te roepen:
Of je kunt voorgeconfigureerde herinneringen afkomstig van andere bronnen invoegen:

Een herinnering bewerken

Om een geplande herinnering (verlopen herinneringen kunnen niet bewerkt worden) te bewerken kun je kiezen uit de volgende werkwijzen:

Dit toont het dialoogvenster om de herinnering te bewerken:

Bij een Schermherinnering in de groep Handeling, selecteer je het Herinneringstype:

Bij een Commandoherinnering kun je een eenregelige opdracht laten uitvoeren op het moment van de herinnering. Indien je een script wilt laten uitvoeren, vink je Voer een script in aan. Daarbij kun je de Commando-uitvoer sturen naar een terminalvenster (Uitvoeren in een terminalvenster), naar een bestand (Loggen naar een bestand) of in het niets laten verdwijnen (Niet gebruiken).

Bij een Herinnering via e-mail om een e-mail te verzenden. Vul het Van, Aan, het Onderwerp en het bericht tekstvak in. Gebruik de knop naast het Aan: tekstvak om uit het adresboek een ontvanger te selecteren. Bijlagen kun je toevoegen met de knop Toevoegen.... Merk op dat het bestand dat de bijlage bevat nog moet bestaan op het ogenblik dat de e-mail verzonden wordt, m.a.w. er wordt bij de configuratie geen kopie gemaakt. Om een bijlage te verwijderen, selecteer je deze in de vervolgkeuzelijst en klik je op de knop Verwijderen.

In de Tijd groep, kies je tussen:

Daarnaast nog enkele algemene instellingen:

De herhaling instellen doe je op het tabblad Herhaling.

Opmerking: herinneringen worden enkel actief als je in de grafische omgeving aangemeld bent.

Klik op OK als alle details in orde zijn en de herinnering aan de lijst met geplande herinneringen mag worden toegevoegd.

Een herinnering verwijderen

Je kunt een herinnering op de volgende manieren verwijderen:

Berichtvenster

Wanneer een herinnering actief wordt, wordt het op elk KDE-bureaublad getoond. Om er zeker van te zijn dat je de herinnering opmerkt, kan een berichtvenster nooit onder een ander venster terecht komen. Het berichtvenster toont de geplande tijd, zodat je steeds weet wanneer de herinnering op het scherm terecht kwam. Bij een Herinnering vooraf (herkenbaar in de titelbalk) wordt de datum/tijd van de herinnering zelf getoond.

Bij een herhalende herinnering zal een niet behandelde herinnering bij de volgende identieke herinnering vervangen worden door deze laatste herinnering. Dit vermijdt het behandelen van meerdere kopieën van dezelfde herinnering.

Bij het verschijnen van een berichtvenster, kun je als volgt reageren:

Opmerking: de tijd voor het uitstel moet vroeger zijn dan de volgende herinnering of Herinnering vooraf van dezelfde herinnering.

Opmerking: de knop Uitstellen... is niet aanwezig bij herhalende herinneringen van het type Bij aanmelden.

Klikken op het KAlarm pictogram start KAlarm en heeft geen effect op het berichtvenster.

Het berichtvenster kan naar wens via het menu Instellingen > KAlarm instellen... in de categorie Beeld op het tabblad Herinneringsvensters via het selectievak Berichtvenster hebben een titelbalk en krijgen de focus in twee verschillende modes werken:

KAlarm in het systeemvak tonen.

Het KAlarm pictogram kan enkel in de KDE-omgeving in het systeemvak geplaatst worden.

Om KAlarm in het systeemvak weer te geven of te verbergen, gebruik je het menu Beeld > In systeemvak weergeven.

Herinneringen inschakelen

KAlarm moet gestart zijn om de herinneringen te volgen.

Indien de herinneringen niet gevolgd worden, doe je het volgende:

Herinneringen uitschakelen

Om de herinneringen uit te schakelen zonder de alarm-daemon te stoppen (en zo geen andere programma's te storen die ook gebruik maken van de alarm-daemon diensten), kies je uit de volgende werkwijzen:

Herinneringen verversen

Mocht het zijn dat een herinnering niet werd geactiveerd, wanneer dit moest, dan kun je de herinneringen lijst verversen en zo de gemiste herinnering alsnog activeren (menu Acties > Herinneringen verversen).

4 Cron: takenplanner voor systeembeheerders

Cron is het programma dat de geplande root taken kan uitvoeren.

Cron wordt in het begin van de opstartprocedure van de computer gestart. Dit heeft als gevolg dat het een proces is dat root-rechten heeft. Alle opdrachten die cron zal uitvoeren, hebben dus root rechten.

Dit kan zonder maatregelen veiligheidsproblemen opleveren. Dit kan door cron te blokkeren voor gewone gebruikers. Dit belet hen systeem onvriendelijke of zelfs schadelijke taken uit te laten voeren. Bij het uitvoeren van de crontab opdracht worden de bestanden /etc/cron.deny en cron.allow geraadpleegd om de gebruiker te weren of toestemming te geven om het crontab takenbestand aan te passen. Als de gebruikersnaam in het bestand cron.allow voorkomt, mag deze gebruiker de opdracht crontab gebruiken. Indien dit bestand niet bestaat en de naam komt niet voor in het bestand cron.deny, mag de gebruiker crontab gebruiken. Als het bestand cron.deny leeg is mogen alle gebruikers crontab gebruiken. Indien zowel cron.allow als cron.deny ontbreken mag alleen de root gebruiker cron gebruiken.

Het plannen ervan doe je met crontab en dat kun je op 2 manieren:

Crontab in directories

In /etc/ staan reeds 4 mappen met veelzeggende namen:

cron.hourly
cron.daily
cron.weekly
cron.monthly

Alles in cron.hourly wordt dus elk uur uitgevoerd, cron.daily elke dag, enz... De uitvoerbare bestanden die je in deze mappen legt, zullen uitgevoerd worden op de momenten die bepaald zijn door de naam van de map.

Manuele Crontab

Een tweede manier is het gebruik van crontab, wat even simpel is en je veel meer mogelijkheden verschaft. Elke gebruiker heeft een crontab-bestand waarin alle taken met hun instellingen vermeld staan. Voor de geïnteresseerden: de bestanden staan in /var/spool/cron/tabs.

sudo crontab -l

Zo zie je wat er in de crontab staat van de root-gebruiker, dat is meestal ook de enige die cron/crontab mag gebruiken. Als je deze rechten verandert en meerdere users crontab laat gebruiken, is het aangeraden dit argument te gebruiken:

sudo crontab -l -u user

Waarmee je dus de geplande taken van andere gebruikers kunt bekijken.

Bewerk niet de bestanden in /var/spool/cron/tabs, gebruik in de plaats het volgende commando:

sudo crontab -e

Indien nodig natuurlijk ook vergezeld van -u user. Wat je nu krijgt is een text-editor (vi) waarmee je de crontab kan bewerken. Tik de letter i om tekst in te voegen en stel dan je geplande taak in:

30 5 * 1,4 * /bin/backup

Daarna sluiten we af met Esc gevolgd door :wq (vergeet de dubbele punt niet). Om dit te begrijpen leer je het volgende schema:

minuut - uur - dag v.d. maand - maand - dag v.d. week

In ons voorbeeld zal het script backup dus uitgevoerd worden om halfzes 's morgens en dat enkel in januari en april. Dat is een nogal onrealistisch voorbeeld, maar wat je wel kunt gebruiken is dit:

0 0 * * 5 /bin/site-backup

Elke vrijdag om middernacht wordt nu het script site-backup uitgevoerd, je ziet dat wat we niet gebruiken een * blijft.

TIP: Wil je in 1 klap de hele crontab van een gebruiker verwijderen, gebruik dan `sudo crontab -r`

Alle uitvoer van opdrachten of scripts die door cron werden uitgevoerd, worden per e-mail naar de systeembeheerder gestuurd.

Na het aanmaken van een nieuwe taak, breng je cron op de hoogte van de nieuwe taak door cron te herstarten met de opdracht `sudo /etc/init.d/cron restart`.

Visual Cron

Visual Cron is een pakket (vcron) waarmee je met een eenvoudige grafische omgeving taken kunt plannen. Dit pakket is in openSUSE niet standaard geïnstalleerd.

Opmerking: om de root taken te beheren moet je het programma vcron als root uitvoeren (sneltoets Alt+F2 en de opdracht kdesu vcron uitvoeren.

Visual Cron is zo eenvoudig dat een verdere beschrijving hier niet noodzakelijk is om ermee te kunnen werken (zie afbeelding).

Opdrachten

  1. Configureer indien nodig KMail zodat het lokale postkantoor voor de gebruiker sntcursist gebruikt kan worden.

  2. Installeer indien nodig met YaST KAlarm.

  3. Maak de volgende herinneringen en probeer ze telkens:

    1. Een herinnering met het tekstbericht “Een kwartiertje PAUZE” met een groene achtergrondkleur. Deze herinnering moet elke weekdag om 10u15, 15u15 en 19u45 en de zaterdag om 10u15 op het scherm verschijnen. En dit tot het einde van het schooljaar.
      Hoeveel herinneringen moet je daarvoor aanmaken?

    2. Een herinnering met het bestand ~/Documenten/Takenplanner/Verhaal voor het slapen gaan om 22u00.

    3. Een herinnering om elke dag om 21 uur met de opdracht `kmail --check` mijn e-mails te controleren.

    4. Elk jaar een herinnering op 17 Maart om 20u55 met een e-mail aan jezelf (lokaal postkantoor) met als onderwerp “Verjaardag zus doorsturen naar zus@familie.be” en als bericht:
      Gelukwensen met je verjaardag.

      Groetjes,

      Broer

    5. Schrijf een script om de map ~/.kde4/share/apps/kmail/mail te backuppen naar ~/mail.

      1. Laat dit script elke dag om 20u45 uitvoeren.

  4. Sluit alle vensters.

  5. Installeer indien nodig het pakket vcron.

  6. Zorg ervoor dat de gebruiker sntcursist geen gebruik kan maken van crontab.

    Beschrijf kort hoe je dit doet:

  7. Start vcron als systeembeheerder.

  8. Om in de gaten te houden wat er op een systeem gebeurt, ga je het logboek met systeemberichten via e-mail naar de systeembeheerder sturen.

    1. Plan de opdracht `tail /var/log/messages` elke 10 minuten.

    2. Noteer hier de toegevoegde crontab-regel:

  9. Het vorige kan gebruikt worden om een logboek te volgen, maar begint op spam te gelijken. Vandaar deze variant.

    1. Schrijf het volgende script.
      #!/bin/bash
      Bericht="Bijlage met gecomprimeerd boot.msg"
      Tijdelijk=/tmp/boot.msg.`/bin/date +\%m\%d`
      /bin/cp /var/log/boot.msg $Tijdelijk
      /usr/bin/
      gzip $Tijdelijk
      echo $Bericht | mail -s "Logboek" -a $
      Tijdelijk.gz sntcursist@localhost
      rm $
      Tijdelijk.gz

    2. Test het script als root in een terminal.

    3. Controleer de mailbox.
      Controleer of je een mail met als onderwerp “Logboek” hebt ontvangen. Zoniet moet je de oorzaak opsporen en verhelpen tot het script werkt.

    4. Plan het opgeslagen script zodat het elke dag uitgevoerd wordt.
      Welke methode gebruik je daarvoor?

  10. Stel de computertijd in op 10u00.

  11. De opdracht `/usr/sbin/sntp -r -P no be.pool.ntp.org; /sbin/hwclock --systohc` synchroniseert de datum en tijd met de computer be.pool.ntp.org op het internet en daarna de hardware klok van uw computer (in de BIOS).

    1. Gebruik cron om deze synchronisatie elke dag uitgezonderd op zondag om 10uXX (vervang de XX door de huidige minuten + wat extra tijd) uit te voeren.

    2. Na het bevestigen wacht je tot 10uXX.

  12. In het bestand /etc/crontab staan de instellingen voor cron.

    1. Open dit bestand.

    2. De variabele MAILTO heeft als waarde?

    3. Verander de waarde van MAILTO naar het fictieve adres: sys@linux.snt.
      Nu zal alle cron uitvoer naar dit mailadres verzonden worden.