Ajoitus kysymys


#1

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.


#2
date +'%T'

#3

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: