fbpx

Comandos Linux – Comando crontab

Comando Linux crontab

Atualizado: 05/04/2019 por Computer Hope

crontab

Em sistemas operacionais do tipo Unix, o comando crontab abre a tabela cron para edição. A tabela cron é a lista de tarefas agendadas para execução em intervalos regulares no sistema.

O daemon que lê o crontab e executa os comandos no momento certo é chamado cron . É nomeado após Cronos, o deus grego do tempo.

Este documento cobre a versão GNU / Linux do crontab .

Sintaxe

  Arquivo crontab [ -u usuário ]
  crontab [ -u usuário ] [ -l |  -r  -e ] [ -i ] [ -s ]

Opções

ArquivoCarregue os dados do crontab do arquivo especificado. Se o arquivo for um traço (”  “), os dados do crontab serão lidos a partir da entrada padrão .
-u usuárioEspecifica o usuário cujo crontab deve ser exibido ou modificado. Se essa opção não for fornecida, o crontab abre o crontab do usuário que executou o crontab . Nota: o uso de su para alternar os usuários pode confundir o crontab ; portanto, se você o estiver executando dentro do su , sempre use a opção -u para evitar ambiguidade.
-IExibe o crontab atual.
-rRemova o crontab atual.
-eEdite o crontab atual, usando o editor especificado na variável de ambiente VISUAL ou EDITOR .
-iO mesmo que -r , mas fornece ao usuário um prompt de confirmação sim / não antes de remover o crontab.
-sSomente SELinux : anexa a cadeia de contexto de segurança atual do SELinux como uma configuração MLS_LEVEL ao arquivo crontab antes da edição ou substituição. Consulte a documentação do SELinux para obter informações detalhadas.

visão global

O comando crontab é usado para visualizar ou editar a tabela de comandos a serem executados pelo cron .

Cada usuário no seu sistema pode ter um crontab pessoal.

Os arquivos Crontab estão localizados em / var / spool / (ou em um subdiretório como / var / spool / cron / crontabs ), mas eles não devem ser editados diretamente. Em vez disso, eles são editados executando o crontab .

Entradas de comando Cron

Cada entrada de comando cron no arquivo crontab possui cinco campos de hora e data (seguidos por um nome de usuário, apenas se for o arquivo crontab do sistema), seguidos por um comando.

Os comandos são executados pelo cron quando os campos de minuto, hora e mês correspondem à hora atual e pelo menos um dos campos de dois dias (dia do mês ou dia da semana) corresponde ao dia atual.

O daemon cron verifica o crontab uma vez a cada minuto.

NotaOs horários inexistentes, como “horas perdidas” durante o horário de verão, os dias “primavera a frente” nunca serão correspondentes. Isso faz com que os trabalhos agendados durante os “horários ausentes” não sejam executados durante esses períodos. Pelo mesmo motivo, os horários que ocorrem mais de uma vez durante o horário de verão (no outono) farão com que os trabalhos correspondentes sejam executados duas vezes.

Campos de data e hora

campovalores permitidos
minuto0 – 59
hora0 – 23
dia do mês1 – 31
mês1 – 12 (ou nomes; veja o exemplo abaixo)
dia da semana0 – 7 ( 0 ou 7 é domingo, ou use nomes; veja abaixo)

Qualquer um desses campos pode ser definido como um asterisco ( * ), que significa “primeiro ao último”. Por exemplo, para executar um trabalho todos os meses, coloque * no campo Mês.

Intervalos de números são permitidos. Intervalos são dois números separados por um hífen. O intervalo especificado é inclusivo; por exemplo, 8-11 para uma entrada “horas” especifica a execução nas horas 8, 9, 10 e 11.

Listas são permitidas. Uma lista é um conjunto de números (ou intervalos) separados por vírgulas. Exemplos: ” 1,2,5,9 “, ” 0-4,8-12 “.

Os valores das etapas podem ser usados ​​em conjunto com os intervalos. Por exemplo, ” 0-23 / 2 ” no campo Horas significa “a cada duas horas”. As etapas também são permitidas após um asterisco; portanto, se você quiser dizer “a cada duas horas”, poderá usar ” * / 2 “.

Os nomes também podem ser usados ​​para os campos “mês” e “dia da semana”. Use as três primeiras letras do dia ou mês específico (caso não importe). Intervalos ou listas de nomes não são permitidos.

O campo “sexto” (o restante da linha) especifica o comando a ser executado. Toda a parte do comando da linha, até uma nova linha ou caractere % , será executada por / bin / sh ou pelo shell especificado na variável SHELL do cronfile. Os sinais de porcentagem ( % ) no comando, a menos que sejam escapados com barra invertida ( \ ), serão alterados para caracteres de nova linha e todos os dados após o primeiro % serão enviados ao comando como entrada padrão.

Observe que o dia da execução de um comando pode ser especificado por dois campos: dia do mês e dia da semana. Se os dois campos forem restritos (em outras palavras, eles não forem * ), o comando será executado quando um dos campos corresponder ao horário atual. Por exemplo, ” 30 4 1,15 * 5 ” faria com que um comando fosse executado às 4:30 da manhã nos dias 1 e 15 de cada mês, além de toda sexta-feira.

O arquivo crontab

Cada linha de um arquivo crontab é “ativa” ou “inativa”. Uma linha “ativa” é uma configuração de ambiente ou uma entrada de comando cron. Uma linha “inativa” é qualquer coisa ignorada, incluindo comentários.

Linhas em branco e espaços à esquerda e tabulações são ignorados. As linhas cujo primeiro caractere não espacial é um sinal de libra ( # ) são interpretadas como comentários e são ignoradas. Comentários não são permitidos na mesma linha que os comandos cron , porque eles serão interpretados como parte do comando. Pelo mesmo motivo, comentários não são permitidos na mesma linha que as configurações de variáveis ​​de ambiente.

Configurações do ambiente

Uma linha de configuração do ambiente no crontab pode definir variáveis ​​de ambiente sempre que o cron executar uma tarefa.

GorjetaNem o crontab de todo sistema pode incluir configurações do ambiente. No Ubuntu e Debian , e sistemas que usam GNU mcron , as configurações do ambiente podem ser feitas no crontab. Em outros sistemas, como o Arch Linux e o Fedora, as configurações de ambiente no crontab não são permitidas. Verifique a documentação cron da sua distribuição para obter mais informações.

Uma configuração de ambiente no crontab é formatada como:

  nome = valor

Os espaços ao redor do sinal de igual ( = ) são opcionais e quaisquer espaços não iniciais subsequentes no valor farão parte do valor designado ao nome . A cadeia de valor pode ser colocada entre aspas (simples ou dupla, mas correspondente) para preservar espaços em branco à esquerda ou à direita.

Algumas variáveis ​​de ambiente são definidas automaticamente pelo cron :

  • SHELL está definido como / bin / sh .
  • LOGNAME e HOME são definidos na linha / etc / passwd do proprietário do crontab. HOME e SHELL podem ser substituídos no tempo de execução pelas configurações no crontab; LOGNAME pode não.
  • A variável LOGNAME às vezes é chamada USER em sistemas BSD . Nesses sistemas, USER também será definido.

Configuração

Permitindo que os usuários executem tarefas cron

Trabalhos Cron podem ser permitidos ou não para usuários individuais, conforme definido nos arquivos /etc/cron.allow e /etc/cron.deny . Se o cron.allow existir, um usuário deverá estar listado lá para poder usar um determinado comando. Se o arquivo cron.allow não existir, mas o arquivo cron.deny , um usuário não deverá estar listado lá para usar um determinado comando. Se nenhum desses arquivos existir, apenas o superusuário poderá usar um determinado comando.

As permissões de Cron também podem ser definidas usando a autenticação PAM (módulo de autenticação conectável) para configurar usuários que podem ou não usar os trabalhos crontab e cron do sistema. A configuração do PAM está localizada em /etc/cron.d/ .

Configurando o Diretório Temp

O diretório temporário para tarefas cron pode ser definido nas variáveis ​​de ambiente listadas abaixo. Se essas variáveis ​​não estiverem definidas, o diretório temporário padrão / tmp será usado.

Arquivos de configuração

ArquivoDescrição
/etc/cron.allowSe esse arquivo existir, os usuários deverão estar listados nesse arquivo para poder executar tarefas cron.
/etc/cron.denySe esse arquivo existir, os usuários não deverão estar listados nesse arquivo para poder executar tarefas cron.

Se nenhum arquivo de configuração existir, apenas o superusuário poderá executar tarefas cron.

Exemplos

Executando o crontab

  crontab -e

Edite seu crontab.

  crontab -l

Exiba (“lista”) o conteúdo do seu crontab.

  crontab -r

Remova o seu crontab, desmarcando efetivamente todos os trabalhos do crontab.

  sudo crontab -u charles -e

Edite o crontab do usuário chamado charles . A opção -u requer privilégios de administrador, portanto, o comando é executado usando o sudo .

  sudo crontab -l -u jeff

Veja o crontab do usuário jeff .

  sudo crontab -r -u arenoso

Remova o crontab do usuário sandy .

Entradas do Crontab

A seguir, exemplos de entradas que podem ser incluídas em um crontab.

Execute o script de shell /home/melissa/backup.sh em 2 de janeiro às 6h15:

  15 6 2 1 * /home/melissa/backup.sh

Dias e meses podem ser listados por nome ( segunda-feira ) ou abreviação ( janeiro ). Os zeros no início de um número são válidos, o que pode ajudá-lo a alinhar visualmente várias entradas.

ee

Por exemplo, o próximo exemplo executa o mesmo script acima, às 12h01, toda segunda-feira de janeiro:

  01 00 * Segunda-feira de janeiro /home/melissa/backup.sh

Execute /home/carl/hourly-archive.sh a cada hora, a cada hora, das 9:00 (09:00) às 18:00 ( 18:00 ), todos os dias:

  00 09-18 * * * /home/carl/hourly-archive.sh

Execute /home/wendy/script.sh toda segunda-feira, às 9h e 18h:

  0 9,18 * * Seg /home/wendy/script.sh

Execute / usr / local / bin / backup às 22:30, todos os dias da semana:

  30 22 * ​​* Seg, Ter, Qua, Qui, Sex / usr / local / bin / backup

at – Programe um comando para ser executado em um determinado horário.

14 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.