Closed xhuan-wang closed 4 years ago
When i replace a command in the script, it return the correct result , only the docker command did not return the correct result .
Hi @xhuan-wang, thank you for the detailed issue description. I was able to reproduce the problem with the following script:
#! /bin/bash
result="$(docker exec -it test ls -la | wc -l)"
echo "$result"
echo "number_of_files $result"
The problem here is the -t
flag in the docker exec
command. I was able to get the correct result, when I adjust the script as follows:
#! /bin/bash
result="$(docker exec -i test ls -la | wc -l)"
echo "$result"
echo "number_of_files $result"
Can you try if this also works for you please? I think you can use the following:
#!/bin/sh
source /etc/profile
result="$(sudo docker exec -i mysql_slave1 mysql -utest -p'test' -e "show slave status\G" |grep "Slave_IO_Running: Yes"|wc -l)"
echo "# HELP mysql_slave1_io_running"
echo "# TYPE mysql_slave1_io_running gauge"
echo "mysql_slave1_io_running{label=\"mysql_slave1_io_running\"} $result"
Yes, I removed -t
and returned the correct result, thank you very much!
Thanks for the feedback. I added this as example and will close the issue now. If you have further questions or found problem feel free to open a new issue.
Hi , i'm using your script_exporter . its great !!! However , when i executed a shell script about docker with your script_exporter, it returned an error result , but it return the correct result when i executed the script through
sh script.sh
, i can't see the log and I don't know why ,Can you help me?