Criei um programa que requer uma sequência de instruções de linha de comando para extrair novas informações e atualizar os bancos de dados.
Existe uma maneira de automatizar esse processo para que eu não precise digitar tudo isso no terminal toda vez que me sento? Talvez faça com que as três primeiras etapas sejam executadas a cada hora e a etapa 4 seja executada às 2h, pois pode levar muito tempo para ser concluída.
Passo 1:No terminal:
...Documents/dota2/dotaapi2/ python match_scraper.py
Passo 2:No terminal
psql dota2apidb
update games set online=1 where online is null;
Etapa 3:No terminal:
...Documents/dota2/gosugamers/gosugamers/spiders/ scrapy crawl dota
Passo 4:No terminal: (executar uma vez apenas às 2h)
...Documents/dota2/dotaapi2/ python gosu_merge.py
...Documents/dota2/dotaapi2/ python unticketed.py
Responder1
Uma solução poderia ser configurar cronjobs para bloquear/desbloquear o diretório do jogo. Para fazer isso, siga as etapas abaixo.
Certifique-se de que o cron-daemon esteja instalado
sudo apt-get install cron
Configurando o cronjob para ser executado como root
Comece a editar o cronjob emitindo o seguinte comando:
sudo crontab -e
Adicione as seguintes linhas ao editor:
00 */1 * * * ...Documents/dota2/dotaapi2/ python match_scraper.py
01 */1 * * * psql dota2apidb
02 */1 * * * update games set online=1 where online is null;
03 */1 * * * ...Documents/dota2/gosugamers/gosugamers/spiders/ scrapy crawl dota
04 02 * * * ...Documents/dota2/dotaapi2/ python gosu_merge.py
05 02 * * * ...Documents/dota2/dotaapi2/ python unticketed.py
(Só para deixar claro que você precisa usar comandos e caminhos adequados, talvez colocando um pouco disso em scripts bash preparados para reduzir a quantidade de crons em execução)
Responder2
coloque as etapas 1,2,3 em script1.sh coloque a etapa 4 em script2.sh
Então configurecronpara o usuário apropriado executar os scripts de acordo com sua programação:
minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command
01 * * * * /usr/bin/directory/script1.sh
30 2 * * * /usr/bin/directory/script2.sh
script1.sh será executado no minuto 01 se a cada hora de cada dia, enquanto script2.sh será executado no minuto 30 da hora 0200 todos os dias.