Crontab, wykonuje polecenie tylko raz

Tematy związane z oprogramowaniem, instalacją, konfiguracją
bullseye
Posty: 71
Rejestracja: 19 grudnia 2008, 22:05
Lokalizacja: Warszawa

Crontab, wykonuje polecenie tylko raz

Post autor: bullseye » 23 listopada 2020, 08:13

Hej, postawiłem sobie mały serwer na debianie 9. Właczyłem Crontab'a by każdego dnia o północy tworzył mi archiwum serwera Blynk i wysyłał na FTP. Problem w tym że mimo że komenda wklejona przez puttty wykonuje się poprwanie to niestety dodana w Crontabie nie działa :( Podpowie ktoś co robię nie tak ?

Crontab -e:

Kod: Zaznacz cały

0 1 * * * 7z a -mx=1 /home/blynk/Backup/Blynk_$(date +%F).7z /home/blynk/Blynk && sh /home/blynk/curl.sh  >/dev/null 2>&1
curl.sh:

Kod: Zaznacz cały

#!/bin/sh

for file in /home/blynk/Backup/*.7z
do
  curl -T ${file} ftp://****:****@domain.pl/Dokumenty/Blynk/Kopia/
done

Awatar użytkownika
dedito
Moderator
Posty: 3241
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: Crontab, wykonuje polecenie tylko raz

Post autor: dedito » 23 listopada 2020, 08:38

Patrzaj w logi.
Tak na moje ślepe oko, to pełna ścieżka do 7z by się przydała.
No i czemu wszystkiego nie wrzucisz w skrypt? Po co takie kombinacje alpejskie?

bullseye
Posty: 71
Rejestracja: 19 grudnia 2008, 22:05
Lokalizacja: Warszawa

Re: Crontab, wykonuje polecenie tylko raz

Post autor: bullseye » 23 listopada 2020, 08:55

Ok, dodana ścieżka do 7z, i wszystko wrzuciłem w skrypt, zobaczymy czy o północy się odpali :)

Awatar użytkownika
lizard
Beginner
Posty: 281
Rejestracja: 08 lutego 2016, 18:47

Re: Crontab, wykonuje polecenie tylko raz

Post autor: lizard » 23 listopada 2020, 11:28

  1. To jest tablica systemowa crona, umieszczona w /etc/cond.d?
  2. Przeczytaj, jak traktowany jest znak procenta (%):

    Kod: Zaznacz cały

    $ man 5 crontab
    (...)
           The ``sixth'' field (the rest of the line) specifies the command to  be
           run.   The  entire  command  portion  of the line, up to a newline or %
           character, will be executed by /bin/sh or by the shell specified in the
           SHELL  variable of the crontab file.  Percent-signs (%) in the command,
           unless escaped with backslash (\), will be changed into newline charac‐
           ters,  and  all  data  after the first % will be sent to the command as
           standard input.  There is no way to split a single  command  line  onto
           multiple lines, like the shell's trailing "\".
    (...)
  3. Nie musisz czekać do północy. Wrzuć do tej samej tabeli inne zadanie (np. echo 'ok' > /tmp/ront-test.txt), które wykona się za 2 minuty.

ODPOWIEDZ