Eu pesquisei bastante sobre como fazer isso e vejo que não há maneira direta no cron de executar um trabalho, digamos, todas as quintas-feiras.
No momento, estou inclinado a criar um script que será executado toda semana e tocará em um arquivo "sinalizador" quando for executado, e se for executado e o arquivo já estiver lá, para remover o arquivo (e não executar o ação quinzenal).
Minha pergunta é: existe alguma outra maneira mais elegante ou mais simples de atingir esse objetivo de um script bash de ações sendo executadas a cada duas semanas automaticamente?
Obrigado!
Respostas:
Eu costumava bash para fazer minhas contas porque sou preguiçoso; mude isso para o que quiser. Aproveito que 1º de janeiro de 1970 seja quinta-feira; para outros dias da semana, você teria que aplicar um deslocamento. Cron precisa que os sinais de porcentagem escapem.
Verificação rápida:
Observe que escolhi horários aleatórios para mostrar que isso funcionará se executado a qualquer momento na quinta-feira e datas escolhidas que ultrapassam os limites do ano e incluem meses com 4 e 5 quintas-feiras.
Resultado:
fonte
Uma maneira pode ser usar o
at
utilitário se você estiver executando o Linux. Você pode colocar isso no final do seu script:onde X é a hora em que você deseja executar seu script. Para inicializar, basta ligar
at
para o horário em que você deseja executá-lo pela primeira vez e, em seguida, a instrução acima continua renovando sua chamada agendada.fonte
Se você pode usar
anacron
no sistema, as coisas serão muito mais simples. Para usar,anacron
você deve instalá-lo e também deve ter acesso root. Ele não funciona em sistemas mais antigos (como o RHEL 5.x), as versões mais antigas do ancron são executadas APENAS na inicialização. Ele funciona com sistemas mais novos (por exemplo, RHEL 6.x).Com
anacron
, é possível agendar trabalhos de maneira mais flexível, por exemplo, executar o trabalho X uma vez por semana. Tambémanacron
executa trabalhos quando o computador fica disponível, ou seja, você não precisa considerar quando o sistema está ativo ou inativo.Para executar um script a cada duas semanas, você deve adicionar uma linha semelhante à seguinte ao / etc / anacrontab:
Dê uma olhada na página de manual para obter detalhes.
fonte
anacron
é claramente a solução mais limpa da IMO (a menos que tenha algumas conseqüências indesejadas para algumas pessoas).Não tenho certeza se existe uma maneira mais elegante de definir a cada duas semanas, mas isso pode funcionar para você.
Isso iniciará o script às 6:00 da manhã, na primeira e na terceira quinta-feira do mês.
fonte
1-7,15-21,29-31
, mas seria executado consecutivamente se houvesse correspondências para o último conjunto ...Eu o executava toda semana e solicitava que o script verifique se o número da semana é um número ímpar: se sim, sair.
Isso exigiria mais reflexão para funcionar de dezembro a janeiro.
Talvez o script tenha definido um arquivo de sinalizador "última execução bem-sucedida". Quando o script é iniciado, verifique se o arquivo de sinalizador foi modificado pela última vez há 14 dias.
fonte