Cron não está disponível, o que usar em vez disso?

2

Várias contas de servidor onde eu executo alguns scripts para extrair dados de bancos de dados possuem ferramentas muito limitadas disponíveis e em alguns deles você não tem permissão (mesmo por solicitação formal) para usar cron, do que foi dito, você pode recomendar qualquer ferramenta ( s) Posso usar para agendar a execução dos scripts (assim como o cron faz)?

Agradecemos antecipadamente:)

Atualização 1: Sim, os servidores aos quais estou me referindo são Linux, HP-Ux e Solaris, Bash > 3.x está disponível.

    
por alemani 11.03.2010 / 06:16

6 respostas

7

Se você tiver permissão para SSH em um servidor com o Cron, poderá iniciar trabalhos periódicos remotamente.

    
por 11.03.2010 / 13:46
3

Que tal um script com ou sem hífen em um loop infinito com um sono no final?

Exemplo:

$ cat runme.sh
#!/bin/bash
while true; do
  echo "Do useful stuff here"
  sleep 86400
done
$ nohup ./runme.sh &

Isso imprimiria "Faça coisas úteis aqui" uma vez por dia.

    
por 11.03.2010 / 07:29
3

A sugestão da ktower funcionará, e não consigo pensar em uma maneira melhor, mas se você tivesse uma escolha real, não seria a solução que você escolheria. A melhor sugestão que posso fazer é mover tudo para um host que forneça as ferramentas e os recursos necessários. Soluções alternativas geralmente causam mais problemas do que resolvem. Com uma escolha tão grande de provedores de hospedagem, não há motivo para se contentar com uma solução improvisada.

    
por 11.03.2010 / 09:48
3

Você consegue usar o at scheduler?

    
por 11.03.2010 / 13:05
2

Adicionando a resposta da ktower. Se você tiver que seguir esse caminho e precisar de um intervalo mais freqüente (ou seja, executar algo a cada 5 minutos), verá algum desvio no tempo. Para minimizar, você pode usar uma linha como (supondo que você esteja usando o linux)

sleep $((60 - 'date +%s' % 60))

em que '60' é o número de segundos que você deseja aguardar.

    
por 11.03.2010 / 13:27
0

Como John G. observou, a maneira de vencer este jogo não é jogar; isto é, para executar seus trabalhos em servidores que permitem em / cron. Das soluções alternativas listadas, a idéia de executar o cron / Task Scheduler para disparar comandos SSH de um servidor separado é provavelmente a melhor presumindo que você tenha acesso SSH. (Eu não tenho bastante representante para upvote ainda). Dos outros: a vontade normalmente será desativada com o cron; e qualquer administrador restritivo o suficiente para negar em / cron ficará muito insatisfeito com suas tentativas de burlar a política executando seus scripts de shell em um loop ...

    
por 11.03.2010 / 22:26