Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: CRON nespustí SH soubor, nic se neprovede  (Přečteno 728 krát)

cvp

  • Člen
  • **
  • Příspěvků: 202
    • Zobrazit profil
CRON nespustí SH soubor, nic se neprovede
« kdy: 16 Duben 2020, 22:20:02 »
Ahojte,
potřeboval bych pomoci s triviálním souborem v bash, který chci spouštět přes crontab -e. Nyní nefunguje. Žádné pročištění či vytvoření kopie souboru ve složce to nevytvoří a nevím proč. Použil jsem i na soubor chmod +x a stejně nic.

crontab -e
Kód: [Vybrat]
# m h  dom mon dow   command
14 22 * * * sh /home/pi/clean.sh

Soubor clean.sh obsahuje:
Kód: [Vybrat]
#!/bin/bash

rm -f /home/pi/tmp/*
sleep 1
cp /home/pi/meteotux/meteotux_pi /home/pi/tmp/meteotux_pi
sleep 1
chmod +x /home/pi/tmp/meteotux_pi

Pomůžete, čím to může být? Hrozně moc všem děkuji.

singularis

  • Návštěvník
  • *
  • Příspěvků: 80
    • Zobrazit profil
Re:CRON nespustí SH soubor, nic se neprovede
« Odpověď #1 kdy: 17 Duben 2020, 14:45:32 »
Na první pohled tam chybu nevidím a při otestování ve virtuálním počítači (s jiným jménem uživatele a jiným časem spuštění) mi to funguje, jak má. Zkontroluj následující věci:

  • Opravdu ten skript chceš spouštět každý den ve 22:14? (Nechtěl jsi to třeba ve 14:22?)
  • Skript spouštíš příkazem „sh“, ale v něm deklaruješ, že se má spouštět pomocí bashe. V tvém případě to náhodou nevadí, ale nauč se pečlivě rozlišovat mezi „sh“ a „bash“ — jsou to dva různé interprety a v detailech se liší. Správně tam má být „bash /home/pi/clean.sh“, ale pokud jsi nastavil právo „u+x“, mělo by stačit i jen „/home/pi/clean.sh“.
  • Spouštíš „crontab -e“ jako uživatel „pi“? Pokud to spustíš jako jiný uživatel (např. přes sudo), nebude to fungovat.
  • Zkus do terminálu z toho skriptu zkopírovat jeden příkaz za druhým a vykonat je přesně tak, jak se mají vykonat, zda nenarazíš na nějaký nečekaný problém (třeba chybná přístupová práva).
  • Zkontroluj, zda ti běží démon crond, který ty úlohy spouští: „systemctl status cron.service“

Pokud nic z toho nezabere, můžeš ještě zkusit, zda nenajdeš nějaké chybové hlášení v systémovém logu (po spuštění úlohy):
Kód: [Vybrat]
fgrep cron /var/log/syslog

juwa2

  • Závislák
  • ****
  • Příspěvků: 3717
    • Zobrazit profil
Re:CRON nespustí SH soubor, nic se neprovede
« Odpověď #2 kdy: 17 Duben 2020, 15:34:28 »
Podívej se do syslogu proč úloha neproběhla. Orientuj se dle zadaného času (úlohy).