J'essaye d'écrire un CGI qui va écrire un fichier html afin que je n'aie pas à exécuter le script chaque fois que je veux voir l'information.Commande de script de saut de script CGI
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<HTML>"
echo "<head><title>Status</title></head>"
echo "<body>"
./auto.sh > ../secure/status.html
echo "Redirecting..."
echo "<script language="javascript">window.location.href="../secure/status.html";</script>"
echo "</body></HTML>"
Cependant, quand je dirige le navigateur à la page, la source de page, mais il n'a pas couru la commande de redirection, et ne redirigent même pas ...
<HTML>
<head><title>Status</title></head>
<body>
Redirecting...
<script language=javascript>window.location.href = ../secure/status.html;</script>
</body></HTML>
Qu'est-ce que je fais mal? Merci!
Edit: Ceci est mon auto.sh
#!/bin/bash
echo "<HTML><head><title>Status</title></head><body><pre>"
echo "$(date)"
echo ""
FAILED=$(sudo cat /var/log/secure | grep "$(date +"%b %d")" | grep "sshd" | grep "Failed")
ACCEPTED=$(sudo cat /var/log/secure | grep "$(date +"%b %d")" | grep "sshd" | grep "Accepted")
SPEED=$(python /script/speedtest-cli --server 4128 | grep "Download:\|Upload:")
BAN=$(sudo cat /var/log/fail2ban.log | grep "$(date +"%Y-%m-%d")" | grep "Ban")
echo "##########FAILED##########"
echo "$FAILED"
echo ""
echo "##########ACCEPTED##########"
echo "$ACCEPTED"
echo ""
echo "##########BANNED##########"
echo "$BAN"
echo ""
echo "##########SPEED##########"
echo "$SPEED"
echo ""
echo "##########STORAGE##########"
echo "$(df -h)"
echo ""
echo "##########MEMORY##########"
echo "$(free -m)"
echo ""
echo "<a href="../cgi-bin/status.cgi">Refresh</a>"
echo "</pre></body></HTML>"
1) Vous n'avez pas besoin de 'echo" $ (free -m) "', juste 'free -m'. 2) le script auto imprime déjà l'en-tête, donc le script cgi n'a pas à le faire. –
Lorsque le script cgi s'exécute, je ne veux pas voir l'auto.sh, je veux juste qu'il soit enregistré dans un fichier html. – Tarrinr