Eu tenho 3 scripts (eu removi a função help_page do script networkstats.sh quando colei aqui para economizar espaço):
api3.php
<?php
output = shell_exec('/bin/bash /usr/share/nginx/status/getnetworkstatsin.sh');
echo $output;
?>
getnetworkstatsin.sh
#!/bin/bash
ssh -i /tmp/id_rsa1 root@centos7clone bash -s -- -I < ./networkstats.sh
networkstats.sh
#!/bin/bash
interface=enp0s3
read -r inbytesold outbytesold < <(awk -v dev="^$interface:" '$1 ~ dev {
sub(/[^:]*:/,""); print $1, $9; exit }' /proc/net/dev)
sleep 1
read -r inbytesnew outbytesnew < <(awk -v dev="^$interface:" '$1 ~ dev {
sub(/[^:]*:/,""); print $1, $9; exit }' /proc/net/dev)
kilobitsin=$(( ( ( inbytesnew - inbytesold ) * 8 ) / 1024 ))
kilobitsout=$(( ( ( outbytesnew - outbytesold ) * 8 ) / 1024 ))
show_outgoing() {
echo $kilobitsout
}
show_all() {
echo "kilobits in: $kilobitsin"
echo "kilobits out: $kilobitsout"
}
if [[ $# -eq 0 ]];
then
help_page
exit 1
fi
for arg in "$@"
do
case $arg in
-h|--help)
help_page
;;
-I)
show_incoming
;;
-O)
show_outgoing
;;
-A|--all)
show_all
;;
esac
done
O problema que tenho é que quando eu executo o script api3.php do console, ele é capaz de executar e retornar um valor.
No entanto, quando tento executar uma página da Web, ela não retorna nada.
Acredito que nem está sendo executado quando eu o carrego pela página navegando para localhost / api3.php. Alguém pode ajudar, qual é a razão por trás disso? Eu adicionei
nginx ALL=NOPASSWD: /usr/share/nginx/status/getnetworkstatsin.sh
Para minha seção visudo, tentei alterar as permissões de todos os arquivos envolvidos para o 777 (temporalmente) sem sucesso.
Todos esses scripts estão localizados em / usr / share / nginx / status ao qual o nginx tem acesso.