Como configuro um trabalho Cron?

467

Eu quero agendar uma tarefa para ser executada regularmente e ouvi dizer que o Cron é a maneira de fazer isso.

Como eu adiciono tarefas Cron no Ubuntu?

    
por Gabriel Solomon 16.08.2010 / 10:25

6 respostas

575

Coloque um script de shell em uma dessas pastas: /etc/cron.daily , /etc/cron.hourly , /etc/cron.monthly ou /etc/cron.weekly .

Se isso não for suficiente para você, você pode adicionar mais tarefas específicas, por exemplo duas vezes por mês ou a cada 5 minutos. Vá até o terminal e digite:

crontab -e

Isto irá abrir o seu crontab pessoal (arquivo de configuração do cron). A primeira linha desse arquivo explica tudo! Em cada linha você pode definir um comando para executar e sua programação, e o formato é bem simples quando você pega o jeito dele. A estrutura é:

minute hour day-of-month month day-of-week command

Para todos os números, você pode usar listas, por exemplo 5,34,55 no campo de minutos significará executar 5 passado, 34 passado e 55 passado, independentemente da hora definida.

Você também pode usar intervalos. Eles são definidos assim: */20 . Este exemplo significa todo dia 20, portanto, na coluna de minutos, é equivalente a 0,20,40 .

Então, para executar um comando toda segunda-feira às 5:30 da tarde:

30 17 * * 1 /path/to/command

ou a cada 15 minutos

*/15 * * * * /path/to/command

Observe que o dia da semana vai de 0 a 6, onde 0 é domingo.

Você pode ler mais aqui .

    
por LassePoulsen 09.03.2018 / 03:07
92

Se o trabalho que você deseja executar puder ser executado com os mesmos privilégios que seu usuário, eu recomendo usar um crontab de usuário que você pode editar executando EDITOR="gedit" crontab -e (que usará gedit para editar o arquivo crontab) ou simplesmente crontab -e (que usará o editor padrão) em um terminal.

Se você quiser executar algo a cada 10 minutos, por exemplo, adicione uma linha como esta

*/10 * * * * /usr/bin/somedirectory/somecommand

e salve o arquivo.

Você pode ver o conteúdo do crontab do usuário com crontab -l .

A maneira mais flexível é usar o crontab do sistema que você pode editar executando sudo crontab -e em um terminal. Isso permitirá que você execute seus comandos como root (no caso de precisar desse nível de privilégio) ou qualquer outro usuário no sistema.

Então, se você quiser executar algo a cada 10 minutos como root , por exemplo, adicione uma linha como esta

*/10 * * * * root /usr/bin/somedirectory/somecommand

e salve o arquivo. (observe a adição do usuário na linha)

Você pode ver o conteúdo do arquivo crontab do sistema com sudo crontab -l .

Mais detalhes em: link

    
por Li Lo 16.08.2010 / 10:58
51

Se você preferir fazer isso usando uma GUI, você pode ir ao Centro de Software e instalar Tarefas agendadas (ou executar sudo apt-get install gnome-schedule ). Ele fornecerá uma poderosa GUI para adicionar tarefas do cron.

Observe que, se você usar esse método, as tarefas por padrão serão executadas como seu próprio usuário, não como raiz. Isso geralmente é bom.

    
por Javier Rivera 16.08.2010 / 11:21
23

Eu recomendo o Agendador de Tarefas do KDE ( kde-config-cron ) . Acesse-o a partir das Configurações do Sistema no módulo Agendador de Tarefas .

Ele gerencia os Crontabs pessoais e de sistema, e a facilidade de criar os limites de tempo me surpreendeu muito (veja a imagem abaixo). Eu acho que essa parte é realmente subestimada.

    
por gertvdijk 01.02.2013 / 00:59
11

O Agendador de Tarefas do KDE não funcionará no Ubuntu regular. Funciona apenas em sistemas KDE como o KUbuntu. Para o sistema não KDE, você preferirá usar o gnome-schedule

$ sudo apt-get install gnome-schedule

O aplicativo é tarefas agendadas no Dash.

    
por Antonio 11.02.2014 / 15:35
7

Eu queria definir um trabalho Cron para executar um script bash, portanto, a execução do script adicionaria um trabalho cron.

Eu percebi que quando você faz uso de:

crontab -e 

Em seguida, cria o arquivo:

/var/spool/cron/crontabs/root

Em que root é o nome do usuário que está executando o comando crontab. Portanto, com base nisso e no 14.04, pelo menos, podemos executar os seguintes comandos bash para criar um novo trabalho Cron:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Também precisamos definir a propriedade correta do arquivo:

chown root:root /var/spool/cron/crontabs/root

E defina as permissões corretas:

chmod 600 /var/spool/cron/crontabs/root

Se quando você executar crontab -e já houver trabalhos Cron na lista, você poderá anexá-los à lista usando o seguinte comando:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
    
por Craig van Tonder 27.09.2016 / 22:25

Tags