Miten suorittaa komento "crontab .ip_update" bootissa?
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Crontab on komento, jolla voidaan ajastaa komentoja ajettavaksi tiettynä aikana joten komennon lisääminen ajastettavaksi jokaisessa bootissa ei ihan äkkiseltään kuulosta parhaalta tavalta tehdä mitä ikinä olet tekemässä. Joten, kerro mitä olet tekemässä tai mitä haluat tällä tapahtuvan niin kerrotaan.
Mac mini • MBA 11" • iPhone 5s • iPad (3rd gen)
http://irc.fi/atheos • http://www.mikseri.net/user/atheos
http://irc.fi/atheos • http://www.mikseri.net/user/atheos
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Tausta: tein scriptin, joka tarkistaa onko freedns-palvelimen ip-osoite ajan tasalla. Tarvittaessa scripti päivittää sen. Scripti on ajastettu suoritettavaksi crontabilla ja olen käynnistänyt ajastuksen manuaalisesti päätteeltä komennolla "crontab .ip_update". ".ip_update"-tiedosto sisältää ajastusvälin suoritettavan scriptin ja sen tulosteen ohjauksen lokitiedostoon. Näin voin myös seurata scriptin toimintaa ja katsoa, koska IP-osoite on viimeksi päivitetty. Kaikki toimii kuin rasvattu, mutta...
Ongelmana on, että tuo manuaalinen käynnistys ("crontab .ip_update") täytyisi saada automaattiseksi niin, että jos kone täytyy käynnistää uudelleen, ajastuskin käynnistyy. Muutenhan se voi unohtua pois päältä ja julkinen IP-osoite ei enää päivity. Toisin sanoen, miten voisin suorittaa jokaisen bootin yhteydessä päätekomennon "crontab .ip_update"?
Ongelmana on, että tuo manuaalinen käynnistys ("crontab .ip_update") täytyisi saada automaattiseksi niin, että jos kone täytyy käynnistää uudelleen, ajastuskin käynnistyy. Muutenhan se voi unohtua pois päältä ja julkinen IP-osoite ei enää päivity. Toisin sanoen, miten voisin suorittaa jokaisen bootin yhteydessä päätekomennon "crontab .ip_update"?
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Launchd:llä https://developer.apple.com/library/mac ... dJobs.html
Periaatteessa crontabiin voi laittaa @reboot argumentilla homman ajettavaksi käynnistyksen yhteydessä tyyliin
@reboot /polku/ajettavaan/ohjelmaan.sh mutta en ole ihan varma miten tuota crontabia nykyään os x:ssä noudatetaan kun on puhuttu launchd:n korvaavan sen.
En kyllä ihan ymmärrä miksi ajat tuota crontab komentoa, kun contabissa pitäisi olla se komento, jota sitten ajellaan automaattisesti tietyin väliajoin ilman mitään manuaalikäynnistämisiä.
Periaatteessa crontabiin voi laittaa @reboot argumentilla homman ajettavaksi käynnistyksen yhteydessä tyyliin
@reboot /polku/ajettavaan/ohjelmaan.sh mutta en ole ihan varma miten tuota crontabia nykyään os x:ssä noudatetaan kun on puhuttu launchd:n korvaavan sen.
En kyllä ihan ymmärrä miksi ajat tuota crontab komentoa, kun contabissa pitäisi olla se komento, jota sitten ajellaan automaattisesti tietyin väliajoin ilman mitään manuaalikäynnistämisiä.
Isomursu kertoo, että delfiinikaksikko oli emo ja poikanen.
http://gramdel.kapsi.fi/
http://gramdel.kapsi.fi/
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Laiskuuttani. Piti tehdä ajastus ja crontab (1 rivi + kehote) vs. launchd oli aika selvä peli. Mutta nyt siitä saa maksaa. Täytyy lueskella tuota launchd-manuskaa.gramdel kirjoitti:En kyllä ihan ymmärrä miksi ajat tuota crontab komentoa, kun contabissa pitäisi olla se komento, jota sitten ajellaan automaattisesti tietyin väliajoin ilman mitään manuaalikäynnistämisiä.
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Niin, mutta en silti ymmärrä, miksi ajelet sitä manuaalisesti, jos se scripti on lisätty crontabiin, niin sitä ajellaan automaattisesti asetetulla aikataululla.volc kirjoitti:Laiskuuttani. Piti tehdä ajastus ja crontab (1 rivi + kehote) vs. launchd oli aika selvä peli. Mutta nyt siitä saa maksaa. Täytyy lueskella tuota launchd-manuskaa.
Isomursu kertoo, että delfiinikaksikko oli emo ja poikanen.
http://gramdel.kapsi.fi/
http://gramdel.kapsi.fi/
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Haluan, että scripti .check_and_update_ip.sh suoritetaan vartin välein. Ajastin sen komennolla crontab .ip_update, jossa .ip_update sisältää ajastusaikataulun.gramdel kirjoitti:Niin, mutta en silti ymmärrä, miksi ajelet sitä manuaalisesti, jos se scripti on lisätty crontabiin, niin sitä ajellaan automaattisesti asetetulla aikataululla.volc kirjoitti:Laiskuuttani. Piti tehdä ajastus ja crontab (1 rivi + kehote) vs. launchd oli aika selvä peli. Mutta nyt siitä saa maksaa. Täytyy lueskella tuota launchd-manuskaa.
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Ajaisiko tämä kotihakemiston juuressa olevan check_and_update_ip.sh skriptin vartin välein ja kirjoittaisi kaiken sen tulostaman samassa kansiossa olevaan freednsip.log-tiedostoon.
Koodi: Valitse kaikki
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>Tähän laitan kai jonkin nimen</string>
<key>ProgramArguments</key>
<array>
<string>sh check_and_update_ip.sh</string>
</array>
<key>StandardOutPath</key>
<string>/freednsip.log</string>
<key>StartInterval</key>
<integer>900</integer>
</dict>
</plist>
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Skriptien suorittamisen voi muuten tehdä Program-avaimella. Esimerkkinä omasta launch agentistä:
Koodi: Valitse kaikki
<key>Program</key>
<string>/Volumes/Hiryuu/Dropbox/Programming/Scripts/pixivnew.sh</string>
★
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Kyllä varmaan pääpiirteittäin, tosin polku scriptiin pitää olla absoluuttisena eli /Users/kayttajanimi/check_and_update_ip.shvolc kirjoitti:Ajaisiko tämä kotihakemiston juuressa olevan check_and_update_ip.sh skriptin vartin välein ja kirjoittaisi kaiken sen tulostaman samassa kansiossa olevaan freednsip.log-tiedostoon.
Testaamallahan se selviää, pistät vaan pienemmän välin kuin vartti, niin pääset helposti kokeilemaan toimiiko.
Viimeksi muokannut gramdel, 29.6.2014 klo 10.26. Yhteensä muokattu 2 kertaa.
Isomursu kertoo, että delfiinikaksikko oli emo ja poikanen.
http://gramdel.kapsi.fi/
http://gramdel.kapsi.fi/
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
gramdel kirjoitti:Testaamallahan se selviää, pistät vaan pienemmän välin kuin vartti, niin pääset helposti kokeilemaan toimiiko.
Koodi: Valitse kaikki
<key>RunAtLoad</key>
<true/>
Koodi: Valitse kaikki
launchctl load ~/Library/LaunchAgents/org.oma.launch_agent.plist
launchctl unload ~/Library/LaunchAgents/org.oma.launch_agent.plist
★
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Lauchd:n .plist tiedostoja on kätevä rakentaa Lingon-ohjelmalla. Viimeisin ilmainen versio lienee 2.1.1 vuodelta 2008 (toimii edelleen 10.9:kin) http://sourceforge.net/projects/lingon/files/Lingon/. Uudempi Lingon 3 Mac App Storesta vitosella ja uusin Lingon X tekijän sivuilta kympillä http://www.peterborgapps.com/lingon/
Re: Miten suorittaa komento "crontab .ip_update" bootissa?
Vielä lisäkysymys: check_and_update_ip.sh tulostaa suoritettaessa joko
Thu Jun 26 21:46:02 EEST 2014: FreeDNS IP is already up to date.
tai
**********************
Thu Jun 26 22:01:03 EEST 2014
Updated 1 host(s) xyz.privatedns.org to 46.132.186.219 in 0.179 seconds
Saving new IP-address to freedns_ip-file...
FreeDNS IP is up to date.
**********************
Crontabilla olin ohjannut tämän tiedostoon freednsip.log. Poistin vanhan tiedoston, kirjauduin ulos ja sisään, jonka jälkeen plist loi tilalle uuden. Nyt siihen ei vaan tule mitään, vaikka plistissä on
Eikö tuon StandardOutPath-avaimen pitäisi nimenomaan ohjata skriptin tuloste (yllä) string-atribuutissa mainittuun tiedostoon? Tarkistin Lingonilla (kiitos vinkistä kermit!), että skripti suoritetaan minuutin välein.
Thu Jun 26 21:46:02 EEST 2014: FreeDNS IP is already up to date.
tai
**********************
Thu Jun 26 22:01:03 EEST 2014
Updated 1 host(s) xyz.privatedns.org to 46.132.186.219 in 0.179 seconds
Saving new IP-address to freedns_ip-file...
FreeDNS IP is up to date.
**********************
Crontabilla olin ohjannut tämän tiedostoon freednsip.log. Poistin vanhan tiedoston, kirjauduin ulos ja sisään, jonka jälkeen plist loi tilalle uuden. Nyt siihen ei vaan tule mitään, vaikka plistissä on
Koodi: Valitse kaikki
<key>StandardOutPath</key>
<string>/Users/volc/freednsip.log</string>
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit