Quero criar um script .sh que irá
- execute um arquivo python chamado
match_scraper.py
, - atualize um banco de dados psql conforme mostrado,
- chame um scrapy spider para executar.
Quando crio o script .sh, como chamo esses comandos corretamente? Isto é o que eu descobri:
#!/bin/bash
~Documents/dota2/dotaapi2/ python match_scraper.py
psql dota2apidb
update games set online=1 where online is null;
~Documents/dota2/gosugamers/gosugamers/spiders/ scrapy crawl dota
Responder1
Primeiro você precisa ter certeza de que cada linha/parte do seufestascript funciona em um shell (fora de um script). Não posso dizer se o seu será, então você mesmo terá que verificar isso.
E para executar umPitãoscript que você precisa python
ANTES do caminho para o script
Também:
~
é um atalho para o diretório inicial doatualdo utilizador~asdf
é um atalho para o diretório inicial doasdfdo utilizador~/Documents
é o caminho para aDocuments
pasta no diretório inicial doatualdo utilizador~Documents
está procurando o diretório inicial doDiretóriousuário que é inválido, a menos que você tenha um usuário chamado Directory
Como @muru apontou, você provavelmente quis dizer ~/Documents. Então, seu script bash provavelmente seria parecido com isto
#!/bin/bash
python ~/Documents/dota2/dotaapi2/match_scraper.py
psql dota2apidb
update games set online=1 where online is null;
python ~/Documents/dota2/gosugamers/gosugamers/spiders/scrapy crawl dota
Novamente, não sei se isso funcionará, pois não tenho ideia se cada linha funcionará. Por exemplo, python ~/Documents/dota2/gosugamers/gosugamers/spiders/scrapy crawl dota
realmente funciona quando você o executa na linha de comando?
E eu não seipsqlmas eu suspeito que você precisa passar algum parâmetro de linha de comando para que ele execute esse update...
comando?