Ajoitus kysymys

Moi!

Voiko tehdä sellaisen scriptin mikä tarkistaa kellonajan ja suorittaa määrätyn komennon sen perusteella mitä kello tuolloin on? cronilla voin tehdä useamman mutten haluaisi ajastaa vaan ajettaessa tarkistaisi.

date +'%T'

Toki voi niinkin tehdä, mutta cron voi olla usein helpompi ja parempi tapa.

Shelliskriptillä voi tehdä esimerkiksi jotain tällaista:

#!/bin/sh

# Määritellään jotain funktioita
luo_tiedosto () {
  touch /home/user/hei_maailma.txt
}

# Pyöritään ikuisesti
while :
do
  # Tallennetaan aika muuttujaan 'aika'
  aika="$(date +%H:%M)"
  
  # Suoritetaan komentoja jos muuttuja 'aika' täsmää johonkin kellonaikaan
  case "${aika}"
  in
    # kutsutaan jotain funktiota klo. 12:00
    "12:00") luo_tiedosto ;;
    
    # Ajetaan joku komento klo. 17:00
    "17:00") echo "On kello viiden teehetki" ;;
    
    # Muussa tapauksessa ei tehdä mitään
    *) echo "Aika ei täsmännyt mihinkään vaihtoehtoon, ei tehdä mitään..." ;;
  esac

  # Nukutaan seuraavaan tasaminuuttiin
  sleep $((60 - $(date +%s) % 60))
done

Tai sitten voi tehdä myös jollain “oikeallakin” ohjelmointikielellä jos haluaa. :wink: