Я создаю CGI, который позволяет мне напрямую видеть потребление ОЗУ и ЦП нескольких кластеров, используя график, сгенерированный gnuplot.
Итак, у меня есть первая веб-страница со списком меню, в котором находятся названия моих кластеров и кнопка генерации:
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo '
<html>
<head>
<meta http-equiv="Content-Type" content="test/html"; charset=UTF-8">
<title> CLUSTER GRAPH </title>
<h1> Cluster Graph <font size=3> <a href="Index.sh">[ Index ]</a> </font> </h1>
<hr size="4" color="blue">
</head>
<body>
<p> Choose a Cluster and press the button to generate the graph ! </p>'
Cluster_Name=$(cat ClusterFullList.csv | awk '{print $3}' | sort | uniq)
echo "<form action="script_extract.sh" method="post">"
echo "<select name="CLUSTER">"
echo "$Cluster_Name" | while read CLUSTER; do
echo " <option value="$CLUSTER">$CLUSTER</option>"
done
echo "</select>"
echo"<br><br>"
echo "<input type="submit" value="Generate">"
echo "</form>"
echo'
</body>
</html>
'
Когда вы нажимаете на Generate, должен появиться график с краткой сводкой потребления рядом с ним:
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "
CLUSTER GRAPH
Cluster Graph [ Index ]
hr{
margin-top: 1%;
}
#p1{
font-size: 18px;
text-decoration: underline;
margin-top: -41.8%;
margin-left: 58.5%;
margin-bottom: 2%;
}
#p2{
font-size: 14px;
margin-top: -2.9%;
margin-left: 58.5%;
margin-bottom: 4%;
}
#p3{
font-size: 14px;
margin-top: 5%;
margin-left: 58.5%;
margin-bottom: 4%;
}
"
read a
test=`echo $a | cut -d'=' -f2`
Cluster_data=`cat ClusterFullList.csv | grep -w $test | awk '{print $1" "$2","$12","$13}' > test1.txt`
cat test.txt | sed "s/TITLE/$test/" | sed "s/CLUSTER_NAME.png/$test.png/" | sed "s/CLUSTER_1.txt/test1.txt/" > test2.txt
cat test2.txt | gnuplot
echo "$(sed -n "s/CLUSTER_1.txt/test1.txt/" Script_Conso.sh)"
echo "
`echo "Consumption difference :"`
`./Script_Conso.sh`
"
Я получаю имя кластера из строки запроса со строкой:
test=`echo $a | cut -d'=' -f2`
Я создаю файл, который будет использоваться для построения моего графика со строкой:
Cluster_data=`cat ClusterFullList.csv | grep -w $test | awk | {print $1" "$2","$12","$13}' > test1.txt`
Я изменяю заголовок моего графика gnuplot и файл, который должен использоваться для создания графика, с помощью команды sed:
cat test.txt | sed "s/TITLE/$test/" | sed "s/CLUSTER_NAME.png/$test.png/" | sed "s/CLUSTER_1.txt/test1.txt/" > test2.txt
Я генерирую график:
cat test2.txt | gnuplot
Я запускаю свой скрипт для суммирования потребления:
echo "$(sed -n "s/CLUSTER_1.txt/test1.txt/" Script_Conso.sh)"
Все отлично работает, кроме отображения графики на моей веб-странице. Изображение хорошо сгенерировано в моей папке / var / www / html (я работаю под RedHat 7.6), но когда я смотрю на исходный код страницы, имя моего изображения - «.png».
Я проверил, окружив свою переменную $ test {}, но это ничего не меняет ...
Не могли бы вы мне помочь?
Спасибо!