Primeiro, esta configuração de script para que o usuário que está executando o seu servidor da web (Apache, estou supondo) possa executá-lo? Você pode verificar observando as permissões do script:
$ ls -l somescript.cgi
-rwxrwxr-x. 1 apache apache 1199 Jan 17 20:47 somescript.cgi
Você desejará as permissões de forma que qualquer pessoa possa executá-lo ou, se o script pertencer ao usuário apache
, pelo menos, apenas o proprietário poderá executá-lo.
Se esse for o caso, eu me concentrarei na localização da saída do comando mysql
. O Apache provavelmente não pode gravar no local em que mysql
está tentando gravar o arquivo output
. Eu faria isso uma localização física real assim:
mysql -u root -predhat -H -D mysql -e "select host,db from db;" \
> /tmp/output.txt
Além disso, os backticks são desnecessários, então você pode tirá-los.