Como agendar um trabalho de cron para ser executado no último dia de cada mês

Como agendar um trabalho de cron para ser executado no último dia de cada mês
O utilitário Cron é uma ferramenta útil para automatizar as tarefas para executar para uma data e hora específicas. Por exemplo, você pode automatizar um trabalho a ser executado todos os últimos dias do mês em um determinado momento. Automatando tarefas é algo que você não pode renunciar, especialmente como um administrador. Pode ser um backup que você precisa criar para executar vários scripts. Para evitar esquecer de executar scripts, a melhor opção é modificar o arquivo crontab e agendar trabalhos de cron, que será executado sem a sua intervenção.

Este guia apresenta como você pode criar um trabalho de Cron, particularmente um que é executado no último dia de cada mês.

Trabalhando com empregos de Cron

Você deve criar um arquivo crontab para o usuário especificado criar um trabalho Cron em Linux, Unix ou MacOS. O Crontab O arquivo contém tabelas com cinco campos onde você pode especificar a data e a hora do trabalho de Cron e o caminho completo para o script ou comando para executar.

A sintaxe de um arquivo crontab é como mostrado:

Hora de minuto date_of_month mês dia_of_week comando/script

Use o comando abaixo para abrir o arquivo Crontab:

$ CRONTAB -E

Aqui, abrimos um arquivo crontab para o usuário atual. Se você precisar agendar o trabalho para um usuário em particular, use a sintaxe abaixo.

$ Crontab -e -u

Com o seu arquivo crontab aberto, você pode adicionar seu trabalho de cron na parte inferior.

Por exemplo, se precisarmos criar um trabalho de cron que execute cada primeiro dia de cada mês, o trabalho de Cron seria como mostrado:

$ 10 10 1 * */caminho/para/script.sh

O acima cria um trabalho de cron que executa todos 10:10 cada mês no primeiro dia.

Programe o trabalho de Cron no último dia de cada mês

Determinar o último dia do mês pode ser um desafio, pois alguns meses 28, 29, 30, ou 31 Como o último encontro. Além disso, o campo para o Dia do mês leva um dia específico e dar uma lista de dias possíveis executaria em um dia incorreto.

O truque é especificar um comando que verifique se o dia seguinte é o primeiro dia do mês. Nesse caso, significa que o dia atual é o último daquele mês e o trabalho de Cron pode ser executado.

O comando abaixo verifica e retorna a data de amanhã:

$ data +%d -d amanhã

Usando o mesmo conceito, podemos criar uma condição de que, se a data de amanhã retornar como 01-o que significa que é o primeiro dia-então o trabalho cron a ser executado.

Por exemplo, podemos especificar o comando para ecoar uma determinada saída e verificar se ele será executado quando adicionado ao arquivo crontab. Vamos modificar o comando acima, como mostrado abaixo:

$ ["$ (Data +\%d -d amanhã)" = "01"] && echo "amanhã é o primeiro"

Agora, em vez do comando exibindo saída para confirmar que amanhã é o primeiro dia do mês, podemos configurá -lo para executar nosso trabalho Cron.

O novo comando seria:

$ 30 13 28-31 * * [“$ (data +\%d -d amanhã)” = “01”] &&/home/kyle/linuxhint.sh

O trabalho de Cron acima funcionaria todos os 1:30 DA TARDE de cada último dia do mês. Se o último dia é 28,29, 30 ou 31, ele executará o script especificado.

Observe que estamos listando as datas possíveis de todos os últimos dias do mês e procedendo a dar o comando que verifica que, se o dia seguinte for o primeiro dia do mês seguinte, o dia atual será o último mês. Uma vez confirmado, ele executa o script.

Conclusão

Este guia ofereceu um guia prático sobre como agendar um, se você estivesse preso ao agendar um trabalho de cron que seja executado todos os últimos dias de cada mês. Vimos como determinar o último dia de qualquer mês e agendar um trabalho de Cron.