openSUSE > Palvelinohjelmat ja ohjelmointi

Skripti joka käynnistetään tiettynä aikana

(1/3) > >>

RaijaR:
Olen yrittänyt hahmotella skriptiä (olkoon nimeltään vaikka "temppu"), joka käynnistäisi kaksi pientä "juttua" tiettynä aikana.
Tarkemmin sanottuna esim. juttu1.sh klo 10:00 joka päivä ja juttu2.sh klo 18:00 joka päivä. Itse "jutut" osannen tehdä ja asettaa "tempun" käynnistymään, kun tietokonekin käynnistyy.

Mutta "juttujen" käynnistäminen "tempun" avulla ei ota tuulta purjeisiin. Apua olen etsinyt cron komennosta, mutta en oikein saa siitä selvää.

Luulen, että tämä ei kuluta arvon palstalaisilta monta minuuttia aikaa, mutta minä olen jo yhden illan asian kanssa tuhertanut ja tulos on 0  :P

SuperOscar:
Ks. man at, etenkin osiota Examples.

peran:
Ehkä tässä haetaan tarkemmin cron:ia ?


--- Koodia: ---man crontab

--- Koodi päättyy ---

Ehkä haluat jollakin käyttäjällä.

--- Koodia: ---crontab -e

--- Koodi päättyy ---

Jos haluat roottina...

--- Koodia: ---sudo nano /etc/crontab

--- Koodi päättyy ---

Edit -

--- Koodia: ---crontab -e

--- Koodi päättyy ---

sisällöksi...

--- Koodia: ---0   18  *   *   *    bash -c "/home/user/myscript.sh"

--- Koodi päättyy ---

Tässä siis suoritetaan klo 18:00 joka päivä myscript.sh. normaalina käyttäjänä. Huomioitavaa, että jos kone ei ole kyseisenä ajankohtana päällä, niin käskyä ei suoriteta ollenkaan.

Edit2 - Toki kommenttirivit (alkaa #:lla) kannattaa jättää näkyviin, ettei tartte arvuutella, kuinka se nyt meneekään...

Edit3 - Lisäksi, jos muokkaat /etc/crontab-tiedostoa, niin viimeisenä rivinä pitää olla #, koska viimeistä riviä ei lueta.

Edit4 -
Jos laitetaan käynnistymään molemmat...
sisällöksi...

--- Koodia: ---crontab -e

--- Koodi päättyy ---

--- Koodia: ---# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
0   18  *   *   *    bash -c "/home/user/juttu2.sh"
0   10  *   *   *    bash -c "/home/user/juttu1.sh"

--- Koodi päättyy ---

Edit5 - Taidatkin tarvita molempia tapoja...

Ei taida taipua minultakaan... :(

Ainakaan hätäisesti.

RaijaR:
Suurkiitos!

Tästä on hyvä minun aloittaa.
Monesti ohjeet on minulle aivan liian if-then-elsedo... Eli en saa selvää mitä mikäkin missäkin ja milloinka tekee vai tekeekö ollenkaan mitään missään...  ::)

Se alimman tason oppiminen sopii minulle eli yritys/erehdys  ;D

RaijaR:
Muutaman ongelman ja editointivirheiden jälkeen taitaa toimiakin  :D

Huseerasin kaikenlaisten netistä löytyvien komentojen kanssa sen verran, että pitää erikseen vielä kysyä, että käynnistyykö ajastetut komennot crontab -e editoinnin jälkeen automaattisesti vai onnistuinko käynnistämään komennot vanhingossa (?).

Muutenkin kiinnostaa, että miten käy, kun sähköt menee?

Katsoin mm. tuolta ja oletin, että openSUSE kuuluu Redhat/Fedora/CentOS -porukkaa. https://lifelinux.com/how-to-startstoprestart-cron-service-in-linux/
Nämä komennot eivät antaneet virhekuittausta, mutta ei muutakaan kuittausta:
# /etc/init.d/crond start
# /etc/init.d/crond stop
# /etc/init.d/crond restart

Semmoinen olisi iso apu, että saisin näkymään RTC kellon konsolissa... Onnistuuko sellainen jotenkin?

Navigaatio

[0] Viestien etusivu

[#] Seuraava sivu

Siirry pois tekstitilasta