Executando um script a cada 30 minutos com o crontab usando o ROOT (Debian)

2

Quando eu digito manualmente:

root@username:~# ./myscript.sh

O script é executado, no entanto eu tentei as seguintes combinações para que o crontab execute myscript.sh a cada 30 minutos (para sempre) e nenhum parece fazer nada:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the 'crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
*/30 * * * * root sh /root/myscript.sh
*/30 * * * * root sh ./myscript.sh
*/30 * * * * root sh myscript.sh
*/30 * * * * root ./myscript.sh 

Conteúdo do myscript.sh:

KEYWORDS=("Word1" "Word2" "Word3" "Word4")
IFS=$'\n'
find . -size +1c -type f ! -exec grep -qwF "${KEYWORDS[*]}" {} \; -exec truncate -s 0 {} \;
    
por Guest in need of help 17.01.2014 / 17:20

3 respostas

2

A propósito - para executar a tarefa cron a cada 30 minutos - tente usar:

00,30 * * * * [path_to_file]/myscript.sh

    
por 17.01.2014 / 17:53
0

Para garantir que o seu crontab funcione, você deve sempre ter o caminho completo para o seu código. Para obter o diretório completo para o seu código:

  1. Ir para o diretório do seu código.
  2. Use o comando pwd , que imprimirá o diretório em que você está.
  3. Use este diretório com seu script ao anexar ao crontab.

Se você deseja que seu código seja executado a cada 30 minutos, é possível

*/30 * * * * /full/directory/to/your/code/mycode.sh

Se você quiser que seu código seja executado na hora, ou seja, XX: 00 e 30 após a hora, ou seja, XX: 30

 00,30 * * * * /full/directory/to/your/code/mycode.sh

Se tudo isso estiver concluído, e você ainda não estiver obtendo a saída esperada, tente ver os arquivos /var/log/syslog , e poderá ver o que está errado.

    
por 05.12.2016 / 03:51
-1

Para executar a tarefa cron a cada 30 minutos, a expressão cron será assim:

*/30 * * * * /path-to-file/filename
    
por 02.06.2015 / 15:26

Tags