Substituir meu agendador de tarefas recorrentes por algum produto existente

0

Eu tenho algumas tarefas que gosto de executar periodicamente:

  • Empurre todos os repositórios git (5 vezes por dia)
  • Fazer uma verificação de vírus nos arquivos (a cada 90 dias)
  • Fazer o backup do servidor (um por dia)

Para todas essas tarefas, tenho um script. Para orquestrar isso, eu escrevi um script chamado maintenance , que faz parte do meu projeto de manutenção . A versão atual do script .

Tem um arquivo de configuração JSON para as tarefas:

"git-autopush": {
    "disk": true,
    "internet": true,
    "interval": 0.3,
    "local": false
},

Eu gostaria de substituir meu script por um agendador de tarefas existente, pois gostaria de reduzir o software personalizado no meu sistema. No entanto, tenho os seguintes requisitos:

  • Não corra quando estiver usando bateria.
  • Forneça algum status visível. Isso pode passar por kdialog mesmo.
  • Execute apenas uma tarefa pesada de disco de cada vez.

O script maintenance cuida disso e eu posso executá-lo sempre que tiver tempo suficiente para permitir que as tarefas sejam executadas. Caso contrário, posso simplesmente cancelar todas as tarefas e reiniciá-lo mais tarde.

O cron simples não seria bom, pois não funcionaria quando meu computador estivesse desligado. O anacron pode ser melhor, mas eu suponho que ele executaria todas as tarefas logo após o boot. Além disso, se eu precisar do meu disco para a máquina virtual, como eu diria ao agendador para parar?

Existe algum programa existente lá, ou devo continuar usando o meu?

    
por Martin Ueding 27.09.2013 / 20:04

1 resposta

3

if I happen to need my disk for virtual machine, how would I tell the scheduler to stop?

Cron e anacron são (normalmente) serviços daemon. Você pode parar e iniciá-los da maneira como você para e inicia qualquer outro serviço.

cron would not be good, since it would not work when my computer is powered off

Esse é um critério muito difícil de se locomover. O que você deseja que o software faça enquanto o computador está desligado?

anacron might be better, but I assume that it would run all the tasks right after booting.

Aparentemente. Aqui está uma ideia: inicie e pare anacron com cron .

Run only one disk heavy task at a time

O anacron tem essa opção:

-s
Serializes execution of jobs. Anacron does not start a new job before the previous one finished.

Isso deixa você para implementar esses dois:

  • Não corra quando estiver usando bateria.
  • Forneça algum status visível. Isso poderia ser através de kdialog mesmo.

O primeiro pode ser realizado fazendo com que o cron verifique o status da bateria antes de iniciar o anacron. O segundo poderia ser feito de várias maneiras; você já sugeriu um você mesmo.

    
por 27.09.2013 / 21:03

Tags