
Fiz um script chamado hello.sh
e ele contém o seguinte:
#!/bin/bash
printf "$( arp-scan --interface=eth0 --localnet )\n"
printf "test\n"
depois de torná-lo executável ( chmod o+x
) e executá-lo ( ./hello.sh >> file.txt
), obtenho a saída correta file.txt
(que é o resultado do arp-scan e a string "test"). Mas depois de adicionar a seguinte linha a crontab -e
:
*/1 * * * * /path/to/hello.sh >> /path/to/file.txt
Eu recebo a seguinte saída:
teste teste teste
Como você pode ver, há uma string vazia retornada pela arp-scan
parte. Como posso fazer o arpscan funcionar com o cron?
Informação adicional:Tudo é feito após o login como sudo ( sudo -i
). arp-scan
precisa do sudo. Estou executando isso no Fedora 20.
Responder1
cron
é executado com um ambiente mínimo e um caminho reduzido.
É sempre mais seguro em scripts projetados para serem executados cron
para garantir que todos os comandos tenham o caminho completo fornecido ou que o script defina sua própria variável PATH.
Tente adicionar o caminho completo ao arp-scan
comando.