Strona 1 z 1

Crontab, wykonuje polecenie tylko raz

: 23 listopada 2020, 08:13
autor: bullseye
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

Re: Crontab, wykonuje polecenie tylko raz

: 23 listopada 2020, 08:38
autor: dedito
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?

Re: Crontab, wykonuje polecenie tylko raz

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

Re: Crontab, wykonuje polecenie tylko raz

: 23 listopada 2020, 11:28
autor: lizard
  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.