Como configuro um trabalho Cron?

491

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

607

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
94

Se o trabalho que você deseja executar puder ser executado com os mesmos privilégios que seu usuário, recomendo usar um crontab de usuário que você pode editar executando EDITOR="gedit" crontab -e (que usará o 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 .

Para adicionar um cron job que seja executado como root, você pode editar o crontab do root executando sudo crontab -e .

A maneira mais flexível é usar o sistema crontab /etc/crontab , que você pode editar apenas com privilégios de root. Neste arquivo, o usuário cada comando deve ser executado como é especificado, assim você pode executar seus comandos como root (no caso de você precisar desse nível de privilégio) ou qualquer outro usuário no sistema.

Por exemplo, se você deseja executar algo a cada 10 minutos como root, adicione uma linha como esta

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

(observe a adição do usuário na linha)

Você pode ver o conteúdo do arquivo crontab do sistema com cat /etc/crontab .

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
24

Eu recomendo o Agendador de Tarefas do KDE ( kde-config-cron ) .Acesse-oapartirdasConfiguraçõesdoSistemanomóduloAgendadordeTarefas.

ElegerenciaosCrontabspessoaisedesistema,eafacilidadedecriaroslimitesdetempomesurpreendeumuito(vejaaimagemabaixo).Euachoqueessaparteérealmentesubestimada.

    
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
8

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