Este tópico explica o cron, desde conceitos básicos e sintaxe até estratégias avançadas de agendamento e casos de uso. Você aprenderá como o serviço cron funciona e como criar, gerenciar e depurar jobs cron.
Conceitos básicos e componentes do cron
O que é o cron?
O cron é um agendador de tarefas em sistemas Linux e Unix que executa tarefas em horários programados. Ele permite que os usuários executem scripts, comandos ou softwares automaticamente em intervalos especificados. O cron é ideal para tarefas recorrentes, como backups de dados e atualizações do sistema.
Como o cron funciona
O cron utiliza arquivos crontab (cron table). Esses arquivos de configuração contêm comandos e seus respectivos agendamentos de execução. Cada usuário pode ter seu próprio arquivo crontab no diretório pessoal, e também existe um arquivo crontab em nível de sistema para tarefas gerenciadas pelo administrador.
O daemon cron verifica periodicamente esses arquivos crontab, analisa seus agendamentos e comandos, e os executa nos horários programados.
Componentes do cron
-
Daemon cron: um processo em segundo plano que verifica, agenda e executa os jobs especificados nos arquivos
crontab. -
Arquivos crontab:
-
Crontab em nível de usuário: cada usuário pode editar seus próprios jobs agendados executando o comando
crontab -e. Esses jobs se aplicam apenas ao usuário atual. -
Crontab em nível de sistema: localizado em
/etc/crontab, esse arquivo é gerenciado tipicamente por um administrador do sistema para tarefas em nível de sistema.
-
-
Sintaxe do crontab: cada linha em um arquivo
crontabconsiste em seis campos: minuto, hora, dia do mês, mês, dia da semana e o comando a ser executado.
Expressão cron
O exemplo a seguir mostra uma entrada simples em um arquivo crontab:
# .---------------- minute
# | .------------- hour
# | | .---------- day of month
# | | | .------- month
# | | | | .---- day of week (Sunday=0 or 7)
# | | | | |
# * * * * * user-name command to be executed
30 04 * * * root /path/to/daily_backup.sh
Este job cron está configurado para executar o script daily_backup.sh como usuário root às 4:30 da manhã todos os dias.
Utilize caminhos absolutos para todos os comandos e arquivos de script.
Valores dos campos
Esta tabela descreve os intervalos de valores aceitos e os caracteres especiais suportados para cada campo em uma expressão cron.
|
Campo |
Obrigatório |
Intervalo de valores |
Caracteres especiais |
|
Minuto |
Sim |
[0, 59] |
|
|
Hora |
Sim |
[0, 23] |
|
|
day-of-month |
Sim |
[1, 31] |
|
|
Mês |
Sim |
[1, 12] or JAN-DEC |
|
|
day-of-week |
Sim |
Utiliza o intervalo padrão do Unix de [0, 6], onde tanto 0 quanto 7 representam domingo (SUN). |
|
Caracteres especiais
|
Caractere especial |
Descrição |
Exemplo |
|
|
Corresponde a qualquer valor do campo. |
|
|
|
Especifica um intervalo. |
|
|
|
Especifica um intervalo de repetição. |
|
|
|
Utilizado no campo dia do mês ou dia da semana para indicar "nenhum valor específico". |
|
|
|
Utilizado no campo dia do mês ou dia da semana para indicar "último". |
|
|
|
Especifica o dia útil (segunda a sexta) mais próximo de um dia específico. Pode ser usado apenas no campo dia do mês. |
|
|
|
Especifica o "N-ésimo" dia da semana no mês. Utilizado no campo dia da semana. |
|
Não combine o parâmetro L com uma lista ou intervalo, pois isso pode causar erros de análise ou conflitos lógicos.
Expressões cron comuns
|
Expressão cron |
Descrição |
Cenário |
|
|
Executa uma tarefa a cada minuto. |
Use para verificar sua configuração cron. |
|
|
Executa uma tarefa às 00:00 todos os dias. |
Adequado para reinicializações diárias do sistema ou backups de dados. |
|
|
Executa uma tarefa às 02:00 todos os dias. |
|
|
|
Executa uma tarefa à 01:00 todos os dias. |
|
|
|
Executa uma tarefa às 06:00 todos os dias. |
Adequado para atualizar relatórios de dados pela manhã. |
|
|
Executa uma tarefa às 12:00 todos os dias. |
Adequado para sincronizações de dados ao meio-dia ou e-mails de lembrete diário. |
|
|
Executa uma tarefa às 18:00 de segunda a sexta-feira. |
Adequado para backup de dados ao final do dia útil. |
|
|
Executa uma tarefa às 21:00 todos os dias. |
Adequado para limpeza do sistema ou backup de dados de transações após o horário comercial. |
|
|
Executa uma tarefa às 00:00 no primeiro dia de cada mês. |
Adequado para gerar relatórios mensais financeiros, de vendas ou outros relatórios de negócios. |
|
|
Executa uma tarefa às 00:00 em 1º de janeiro e 1º de julho. |
Adequado para tarefas semestrais importantes, como arquivamento de dados ou reestruturação organizacional. |
|
|
Executa uma tarefa às 14:15 no primeiro dia de cada mês. |
Adequado para monitorar e aplicar patches de segurança em sistemas de TI. |
|
|
Executa uma tarefa às 00:00 todos os domingos. |
Adequado para limpeza e otimização de dados no fim de semana. |
|
|
Executa uma tarefa às 00:00 em 1º de janeiro. |
Adequado para executar scripts anuais importantes de inicialização, como reinicialização do sistema ou arquivamento crítico de dados. |
|
|
Executa uma tarefa a cada 10 minutos. |
Adequado para monitoramento contínuo de sistemas ou serviços críticos. |
Para mais exemplos e um editor interativo, consulte https://crontab.guru/.
Comparações do cron
Comparação entre sistemas operacionais
Recursos básicos
|
Recurso |
Linux/Unix cron |
macOS cron |
BSD cron |
Windows Task Scheduler (Task Scheduler) |
|
Intervalo mínimo de execução |
1 minuto |
1 minuto |
1 minuto |
1 minuto |
|
Local padrão do arquivo de configuração |
/etc/crontab |
/usr/lib/cron/tabs/ |
/etc/crontab |
N/A |
|
Suporte a configuração em nível de usuário |
Suportado |
Suportado |
Suportado |
N/A |
Caracteres especiais
|
Caractere especial |
Linux/Unix cron |
macOS cron |
BSD cron |
Windows Task Scheduler (Task Scheduler) |
|
* (todos os valores) |
Suportado |
Suportado |
Suportado |
Suportado |
|
, (lista de valores) |
Suportado |
Suportado |
Suportado |
Suportado |
|
- (intervalo) |
Suportado |
Suportado |
Suportado |
Suportado |
|
/ (passo) |
Suportado |
Suportado |
Suportado |
Suportado |
|
L (último) |
Suportado por algumas distribuições |
Não suportado |
Não suportado |
N/A |
|
W (dia útil) |
Suportado por algumas distribuições |
Não suportado |
Não suportado |
N/A |
|
# (N-ésimo dia da semana do mês) |
Suportado por algumas distribuições |
Não suportado |
Não suportado |
N/A |
|
? (qualquer valor) |
Suportado por algumas distribuições |
Não suportado |
Não suportado |
N/A |
Recursos avançados
|
Recurso |
Linux/Unix cron |
macOS cron |
BSD cron |
Windows Task Scheduler (Task Scheduler) |
|
Suporte a variáveis de ambiente |
Suporte limitado |
Suporte limitado |
Suporte limitado |
Totalmente suportado |
|
Tratamento de tarefas perdidas |
Sem tratamento automático |
Sem tratamento automático |
Sem tratamento automático |
Políticas configuráveis |
|
Registro de logs |
syslog |
syslog |
syslog |
Event Viewer |
|
Agendamento em nível de segundo |
Não suportado |
Não suportado |
Não suportado |
Suportado |
|
Configuração por interface gráfica |
Nenhum |
Nenhum |
Nenhum |
Disponível |
|
Dependência de tarefas |
Não suportado |
Não suportado |
Não suportado |
Suportado |
|
Gatilhos de rede |
Não suportado |
Não suportado |
Não suportado |
Suportado |
|
Integração com gerenciamento de energia |
Não suportado |
Não suportado |
Não suportado |
Suportado |
Considerações
-
Linux/Unix, macOS e BSD:
-
Verifique se as permissões de arquivo estão configuradas corretamente.
-
Esteja ciente de como as variáveis de ambiente são herdadas.
-
Utilize caminhos absolutos.
-
-
Windows Task Scheduler:
-
Oferece uma variedade maior de opções de gatilho.
-
Suporta controle granular de permissões.
-
Integra-se com eventos do sistema.
-
-
Compatibilidade multiplataforma:
-
Utilize o conjunto mínimo de recursos comuns para tarefas agendadas multiplataforma.
-
Utilize formatos de horário básicos e evite caracteres especiais.
-
Considere uma ferramenta de agendamento multiplataforma, como o Jenkins.
-
Comparação entre frameworks
Sintaxe básica
|
Recurso |
Spring Framework |
Quartz |
Linux cron |
Jenkins |
Kubernetes CronJob |
|
Agendamento em nível de segundo |
Suportado (opcional) |
Suportado |
Não suportado |
Suportado |
Não suportado |
|
Campo de ano |
Opcional |
Suportado |
Não suportado |
Suportado |
Não suportado |
|
Intervalo mínimo |
1 segundo |
1 segundo |
1 minuto |
1 segundo |
1 minuto |
|
Suporte a fuso horário |
Suportado |
Suportado |
Utiliza o fuso horário do sistema |
Suportado |
Suportado |
Caracteres especiais
|
Caractere especial |
Spring Framework |
Quartz |
Linux cron |
Jenkins |
Kubernetes CronJob |
|
* (todos os valores) |
Suportado |
Suportado |
Suportado |
Suportado |
Suportado |
|
, (lista de valores) |
Suportado |
Suportado |
Suportado |
Suportado |
Suportado |
|
- (intervalo) |
Suportado |
Suportado |
Suportado |
Suportado |
Suportado |
|
/ (passo) |
Suportado |
Suportado |
Suportado |
Suportado |
Suportado |
|
? (qualquer valor) |
Suportado |
Suportado |
Não suportado |
Suportado |
Não suportado |
|
L (último) |
Suportado |
Suportado |
Parcialmente suportado |
Suportado |
Não suportado |
|
W (dia útil) |
Suportado |
Suportado |
Parcialmente suportado |
Suportado |
Não suportado |
|
# (N-ésimo dia da semana do mês) |
Suportado |
Suportado |
Não suportado |
Suportado |
Não suportado |
Casos de uso
|
Framework |
Caso de uso |
|
Spring Framework |
- Ideal para integração com projetos Java - Para projetos que exigem suporte a transações - Para integração profunda com o ecossistema Spring |
|
Quartz |
- Como sistema de agendamento independente - Para controle refinado de tarefas - Para requisitos de agendamento complexos |
|
Linux cron |
- Para tarefas simples em nível de sistema - Em ambientes de máquina única - Para tarefas agendadas básicas |
|
Jenkins |
- Para pipelines de CI/CD - Para fluxos de trabalho complexos - Para fluxos de trabalho que exigem uma interface de gerenciamento |
|
Kubernetes CronJob |
- Para tarefas em ambientes conteinerizados - Para aplicações cloud-native - Para jobs que exigem alta disponibilidade e escalabilidade |
Considerações
-
Recomendações:
-
Escolha um framework adequado à escala do seu projeto.
-
Considere custos de manutenção e familiaridade da equipe.
-
Avalie suas necessidades de desempenho e confiabilidade.
-
-
Considerações de compatibilidade:
-
A sintaxe de expressões cron pode variar ligeiramente entre frameworks.
-
Verifique a compatibilidade das expressões durante migrações.
-
Considere as diferenças no tratamento de fusos horários.
-
-
Monitoramento e manutenção:
-
Configure um sistema de monitoramento abrangente.
-
Colete e analise logs.
-
Defina um plano de recuperação de desastres.
-
Caso de uso
Fazer backup automático de um arquivo de texto específico para outro diretório às 23:00 todos os dias para manter os dados seguros e evitar perdas.
Considerações
-
Verifique se o caminho do arquivo de origem (
/path/to/original/file.txt) e o caminho de backup (/path/to/backup/file_backup.txt) estão corretos. -
Verifique se o diretório de destino existe. Caso contrário, crie-o ou adicione um comando de criação de diretório ao job cron.
-
Verifique se o usuário que executa o job cron possui permissões de leitura no arquivo de origem e permissões de escrita no diretório de destino.
-
Verifique periodicamente os arquivos de backup e os logs para confirmar que o job cron está sendo executado corretamente e que os arquivos de backup são válidos.
Procedimento
-
Edite o job cron: abra um terminal e execute o comando
crontab -epara editar os jobs cron do usuário atual. -
Adicione o job cron: adicione a seguinte linha ao arquivo crontab:
0 23 * * * cp /path/to/original/file.txt /path/to/backup/file_backup.txtExplicação:
-
0 23 * * *: Executa o job às 23:00 todos os dias. -
cp /path/to/original/file.txt /path/to/backup/file_backup.txt: Copia o arquivofile.txtpara o diretório de destino e o salva comofile_backup.txt.
-
-
Salve e feche:
-
No editor Nano, pressione
Ctrl+X, pressioneYpara confirmar e, em seguida, pressioneEnterpara salvar e sair. -
No editor Vi ou Vim, digite
:wqe pressioneEnterpara salvar e sair.
-
Perguntas frequentes
Visualizar logs do cron
As execuções de jobs cron são normalmente registradas no log do sistema. Esses logs mostram se um job cron foi disparado:
grep CRON /var/log/syslog
Este comando exibe todos os logs relacionados ao cron, incluindo registros de execução de jobs cron.
Timeouts de jobs cron
-
Soluções:
-
Otimize o script: refine a lógica do script para reduzir o tempo de execução.
-
Divida o job: se o job puder ser dividido, separe-o em vários jobs menores.
-
Utilize um timeout: use o utilitário
timeoutno comando do job cron para limitar o tempo máximo de execução do script. Por exemplo,0 5 * * * timeout 300 /path/to/script.shlimita a execução do script a 300 segundos.
-
Comando de teste simples
Antes de configurar um job cron complexo, use um comando de teste simples para verificar se ele é disparado corretamente. Por exemplo, configure um job para adicionar a data e a hora atuais a um arquivo a cada minuto:
* * * * * date >> /path/to/date_output.txt
Após alguns minutos, verifique o arquivo date_output.txt para confirmar que um novo timestamp é adicionado a cada minuto.
Redirecionar saída para testes
Para testar um job cron, adicione redirecionamento de saída ao comando. Isso direciona a saída padrão (stdout) e o erro padrão (stderr) para um arquivo de log, permitindo verificar se o script foi executado e revisar sua saída.
30 4 * * * /path/to/your-script.sh > /path/to/logfile.log 2>&1
Verifique o arquivo /path/to/logfile.log para revisar a saída do script e possíveis erros.
Frequência de execução de jobs cron
-
Recomendações de configuração:
-
Evite frequência excessiva: definir um agendamento de execução muito frequente pode prejudicar o desempenho do sistema.
-
Configure conforme necessário: jobs simples e rotineiros, como backups, podem precisar ser executados apenas uma vez por dia, enquanto jobs de monitoramento podem precisar ser executados a cada hora ou com maior frequência.
-
Considere a carga do sistema: agende jobs que consomem muitos recursos para execução durante períodos de baixa carga do sistema.
-
Outras dicas de solução de problemas
-
Redirecionamento de saída: redirecione a saída e os erros do job cron para um arquivo de log para facilitar a solução de problemas. Por exemplo:
30 4 * * * /path/to/job.sh > /path/to/job.log 2>&1 -
Notificações por e-mail: se um job cron gerar saída ou um erro, o daemon cron envia um e-mail de notificação. Verifique se o serviço de e-mail do sistema está configurado corretamente ou configure explicitamente o envio de e-mail dentro do job cron.
-
Problemas com caminhos: caminhos absolutos geralmente são mais confiáveis do que caminhos relativos. Utilize caminhos absolutos nos jobs cron sempre que possível.
-
Editar e visualizar jobs cron: use
crontab -epara editar jobs cron ecrontab -lpara visualizar todos os jobs cron do usuário atual. Isso ajuda a garantir que seus jobs estejam configurados corretamente.
Job cron não executando conforme o agendamento
-
Causas e soluções:
-
Expressão cron incorreta: verifique o formato da expressão cron. Confirme se os campos de hora e data estão corretos.
-
Permissões insuficientes do script: verifique se o script possui as permissões de execução necessárias. Use
chmod +x /path/to/script.shpara concedê-las. -
Problemas de ambiente: jobs cron são executados em um ambiente mínimo e podem não carregar a configuração completa do shell do usuário. Utilize caminhos absolutos para comandos no script ou defina explicitamente as variáveis de ambiente necessárias dentro do próprio script.
-
Verificação de log: verifique o log do cron, geralmente localizado em
/var/log/cronou /var/log/syslog (dependendo do sistema), em busca de informações de disparo e possíveis erros. Verifique também os logs de redirecionamento de saída que você configurou.
-
Confirmando a configuração do job cron
Verifique a sintaxe do cron: use crontab -e para editar seu arquivo crontab e confirme que os campos de horário estão definidos corretamente. A ordem dos campos é:
minute hour day-of-month month day-of-week command
Confirme que cada campo está correto.
Na maioria dos sistemas Linux, o serviço cron (daemon) deve estar em execução para executar jobs. Você pode verificar o status do serviço com um dos seguintes comandos:
sudo service cron status
Ou:
sudo systemctl status cron
Se o serviço não estiver em execução, inicie-o:
sudo service cron start
Ou:
sudo systemctl start cron
Conceda permissões de execução ao script: verifique se o arquivo de script possui permissões de execução. Conceda-as usando o seguinte comando:
chmod +x /path/to/your-script.sh
Visualizar todos os jobs cron de um usuário
O comando crontab -l lista os jobs cron do usuário atual. O cron é um agendador de tarefas baseado em tempo em sistemas operacionais do tipo Unix que executa automaticamente comandos ou scripts agendados.
-
Observações:
-
Apenas os jobs cron do usuário atual são listados. Para visualizar os jobs cron de outros usuários, geralmente são necessários privilégios de root ou permissões de sistema apropriadas.
-
Se nenhum job cron estiver configurado para o usuário, o comando
crontab -lpode não retornar saída ou exibir uma mensagem de que o crontab está vazio.
-
Listar jobs cron em um crontab
Para listar os jobs cron do usuário atual, execute o comando crontab -l. Este comando exibe todos os jobs cron definidos no arquivo crontab do usuário atual.
-
Observações:
-
Permissões: usuários regulares podem apenas visualizar e editar seus próprios jobs cron. O usuário root ou usuários com permissões apropriadas podem visualizar e editar os jobs cron de todos os usuários.
-
Ambiente: comandos executados pelo cron são executados em um ambiente mínimo, onde muitas variáveis de ambiente específicas do usuário podem não ser carregadas por padrão. Portanto, utilize caminhos absolutos para comandos e arquivos.
-
Excluir um job cron específico
-
Abra o editor do crontab: execute o comando
crontab -e. Isso abre o arquivo crontab do usuário atual no editor de texto padrão, comoviounano. -
Exclua o job específico: no editor, localize a linha do job que deseja excluir e remova-a. No
viouvim, mova o cursor até a linha e pressionedd. Nonano, mova até a linha e pressioneCtrl+Kpara recortá-la. -
Salve e saia:
-
No
viouvim, digite:wqe pressione Enter para salvar as alterações e sair. -
No
nano, pressioneCtrl+X, depoisYpara confirmar que deseja salvar e, por fim, pressione Enter para sair.
-
-
Para excluir todos os jobs cron do usuário atual, use o seguinte comando.
Este comando exclui todos os jobs instantaneamente, sem solicitação de confirmação. Use com extrema cautela.
crontab -r
-
Observações:
-
Backup: antes de editar ou excluir jobs cron, é uma boa prática fazer backup do seu crontab. Você pode salvar seus jobs atuais em um arquivo usando
crontab -l > crontab_backup.txt. -
Cuidado: excluir ou modificar jobs cron pode afetar as operações do sistema ou a funcionalidade de aplicações. Certifique-se de entender a finalidade de um job antes de modificá-lo.
-
Resolver o erro "not allowed to use crontab"
-
Conecte-se à instância ECS como usuário root.
Para mais informações, consulte Fazer logon em uma instância Linux usando o Workbench.
-
Execute os seguintes comandos para verificar a existência dos arquivos
cron.allowoucron.deny:find /etc/cron.allow find /etc/cron.denyA permissão de um usuário para executar o comando
crontabdepende dos arquivos/etc/cron.allowe /etc/cron.deny, conforme detalhado abaixo.Cron.allow existe
Cron.deny existe
Usuários autorizados do crontab
Cron.allow existe
Cron.deny existe
Usuários autorizados do crontab
Não
Não
Apenas o usuário root pode usar o comando crontab.
Sim
Não
Apenas os usuários listados no arquivo cron.allow podem usar o comando crontab.
Não
Sim
Todos os usuários não listados no arquivo cron.deny podem usar o comando crontab.
Observação
Se o arquivo cron.deny estiver vazio, todos os usuários podem usar o comando crontab.
Sim
Sim
Apenas os usuários listados no arquivo cron.allow podem usar o comando crontab.
Observação
O arquivo cron.allow tem precedência sobre o arquivo cron.deny. Neste caso, o arquivo cron.deny não tem efeito.
-
Com base nos seus requisitos, edite o arquivo
cron.allowoucron.deny.-
Se o arquivo
cron.allownão existir e o nome de usuário não root estiver no arquivocron.deny, remova o nome de usuário docron.denye salve o arquivo. -
Se o arquivo
cron.allowexistir, adicione o nome de usuário não root ao arquivocron.allowe salve o arquivo.
-
-
Reinicie o serviço cron para que as alterações entrem em vigor:
systemctl restart crond.service -
Alterne para o usuário não root e execute o comando
crontabnovamente para verificar se ele pode ser executado com sucesso.
Intervalos e uso dos campos cron
-
O campo dia da semana é o quinto campo em uma expressão cron e especifica em quais dias da semana um job será executado.
-
Números: 1-7 (1 = domingo, 2 = segunda-feira, ..., 7 = sábado)
-
Abreviações: SUN, MON, TUE, WED, THU, FRI, SAT
-
-
Exemplos de formatos comuns:
-
MON-FRI: executa todos os dias de segunda a sexta-feira. -
MON,WED,FRI: executa toda segunda, quarta e sexta-feira. -
MON-WED,SAT: executa de segunda a quarta-feira e também no sábado. -
2-6: executa de segunda a sexta-feira (usando números). -
SUN,SAT: executa todo fim de semana (sábado e domingo).
-
-
Uso avançado:
-
SUN#1: no primeiro domingo do mês. -
6L: na última sexta-feira do mês. -
*/2: a cada dois dias. -
MON#2: na segunda segunda-feira do mês.
-
-
Observações:
-
As abreviações de dia da semana não diferenciam maiúsculas de minúsculas. Por exemplo,
MONé equivalente amon. -
O caractere
?é usado para evitar conflitos ao especificar tanto dia do mês quanto dia da semana. -
Ao usar
Le#, esteja ciente de que nem todas as implementações cron os suportam. Verifique se eles não resultam em combinações de datas inválidas. -
Observe que, ao usar números para os dias da semana, 1 representa domingo. Isso pode ser contraintuitivo, pois muitos sistemas usam 0 ou 7 para domingo. Sempre verifique a documentação do seu sistema.
-
Uso do caractere 'L'
No campo dia do mês
-
Usado sozinho:
-
L= O último dia do mês. -
Exemplo:
0 0 L * ?executa à meia-noite no último dia de cada mês. -
Lida automaticamente com meses de comprimentos variados, incluindo anos bissextos.
-
-
Usado com um deslocamento:
-
L-n= O n-ésimo dia antes do último dia do mês. -
Exemplo:
0 0 L-2 * ?executa à meia-noite no antepenúltimo dia de cada mês.
-
No campo dia da semana
-
Usado sozinho:
-
L= Sábado (o último dia da semana). -
Exemplo:
0 0 ? * Lexecuta à meia-noite todo sábado.
-
-
Usado com um número:
-
nL= O último dia da semana n do mês. -
Exemplo:
6Lindica a última sexta-feira do mês. -
Exemplo:
2Lindica a última segunda-feira do mês.
-
-
Usado com uma abreviação de dia da semana:
-
XXXL= O último dia especificado da semana no mês. -
Exemplo:
FRILindica a última sexta-feira do mês. -
Exemplo:
MONLindica a última segunda-feira do mês.
-
Observações:
-
Evite combinações:
-
O caractere L não deve ser usado com outros intervalos ou listas.
-
Exemplos incorretos:
L,15orL-3,15.
-
-
Adaptação aos dias do mês:
-
L se adapta automaticamente a meses com comprimentos variados.
-
Lida corretamente com fevereiro em anos bissextos.
-
-
Uso do campo dia da semana:
-
Ao usar L no campo dia da semana, defina o campo dia do mês como
?. -
Essa prática evita possíveis conflitos de datas.
-
-
Condições de execução:
-
Se o último dia da semana especificado não existir em um determinado mês, o job não será executado.
-
Por exemplo, fevereiro pode não ter uma quinta sexta-feira.
-
Corrigir o erro "errors in crontab file"
Para resolver esse problema, faça logon na instância para corrigir o formato do arquivo crontab ou redimensione o disco em nuvem caso o disco esteja cheio.
-
Conecte-se à sua instância ECS.
Para mais informações, consulte Métodos de conexão para instâncias ECS.
-
Execute o seguinte comando para verificar o uso do disco:
df -hO sistema exibe informações semelhantes às seguintes. Por exemplo, Use% mostra o uso da partição /dev/xvda1.
Se o uso do disco estiver próximo de 100%, o espaço em disco é insuficiente. Recomendamos redimensionar o disco em nuvem. Para mais informações, consulte Visão geral do redimensionamento de disco em nuvem.
[root@ ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 2.7G 17G 15% / tmpfs 498M 0 498M 0% /dev/shm
