Usando links no crontab

4

Posso usar um link para um arquivo para definir um trabalho de crontab?

Eu tentei o seguinte:

$ crontab -e
$ 10***** /path-to-link/
    
por Josef Klimuk 22.06.2017 / 10:57

2 respostas

4

Sim, você pode usar um link para um arquivo em crontabs - com as mesmas condições de sempre, por exemplo,

  • o arquivo para o qual o link resolve deve ser executável
  • deve poder ser executado dentro do ambiente limitado fornecido por cron

De fato, muitos comandos executáveis comuns são links simbólicos - mesmo /bin/sh :

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jan 11 13:58 /bin/sh -> dash

Então, por exemplo

# m h  dom mon dow   command
40 * * * * /bin/sh -c 'echo "Hello from $0 (which is actually $(readlink -f $0))"' > /home/steeldriver/cron.out

resulta em

$ cat ~/cron.out
Hello from /bin/sh (which is actually /bin/dash)
    
por steeldriver 22.06.2017 / 11:41
4
  • Você deve ter espaços entre o *
  • Também como mencionado por @steeldriver - você tem muitos campos

Adicionar espaços e remover o * extra deve funcionar:

10 * * * * /path-to-link/

Mais informações - como -fazer trabalhos para o cron no linux

Example: Run backup cron job script

If you wished to have a script named /root/backup.sh run every day at 3am, your crontab entry would look like as follows. First, install your cronjob by running the following command:

crontab -e

Append the following entry:

0 3 * * * /root/backup.sh

Save and close the file.

How do I use operators?

An operator allows you to specifying multiple values in a field. There are three operators:

  • The asterisk (*) : This operator specifies all possible values for a field. For example, an asterisk in the hour time field would be equivalent to every hour or an asterisk in the month field would be equivalent to every month.
  • The comma (,) : This operator specifies a list of values, for example: “1,5,10,15,20, 25”.
  • The dash (-) : This operator specifies a range of values, for example: “5-15” days , which is equivalent to typing “5,6,7,8,9,….,13,14,15” using the comma operator.
  • The separator (/) : This operator specifies a step value, for example: “0-23/” can be used in the hours field to specify command execution every other hour. Steps are also permitted after an asterisk, so if you want to say every two hours, just use */2.
    
por Yaron 22.06.2017 / 11:01

Tags