Étape 4: Le programme principal.
bash.cgi
[code]
i #! / bin/sh
echo "Content-type : text/html\n"
# lire dans nos paramètres
CMD ='echo « $QUERY_STRING » | sed - n ' s/^.*cmd=\ ([^ &] * \).*$/\1/p' | sed « s/%20//g » »
DOSSIER ='echo « $QUERY_STRING » | sed - n ' s/^.*folder=\ ([^ &] * \).*$/\1/p' | sed « s/%20//g » | sed « s/%2F/\//g » "
Dossier1 ='echo « $QUERY_STRING » | sed - n ' s/^.*folder1=\ ([^ &] * \).*$/\1/p' | sed « s/%20//g » | sed « s/%2F/\//g » "
Dossier2 ='echo « $QUERY_STRING » | sed - n ' s/^.*folder2=\ ([^ &] * \).*$/\1/p' | sed « s/%20//g » | sed « s/%2F/\//g » "
# notre en-tête html
echo « < html > »
echo "< tête >< titre > Bash CGI < / titre >< / head > »
echo « < body > »
# test si tous les paramètres ont été transmis
Si [$CMD]
puis
affaire « $CMD » dans
ifconfig)
echo "sortie d’ifconfig : < pre > »
/ sbin/ifconfig
echo "< / pre > »
;;
uname)
echo "sortie d’uname-a : < pre > »
/ bin/uname - a
echo "< / pre > »
;;
dmesg)
echo "affichage de dmesg : < pre > »
/ bin/dmesg
echo "< / pre > »
;;
DF)
echo "sortie de df -h: < pre > »
/ bin/df -h
echo "< / pre > »
;;
gratuit)
echo "sortie de libre : < pre > »
/usr/bin/Free
echo "< / pre > »
;;
HW)
echo "matériel inscription : < pre > »
/usr/bin/lshw
echo "< / pre > »
;;
lsusb)
echo "lsusb : < pre > »
/usr/bin/lsusb
echo "< / pre > »
;;
lsuser)
echo "la liste des utilisateurs : < pre > »
/usr/bin/lsuser
echo "< / pre > »
;;
LS)
echo "sortie de ls $FOLDER : < pre > »
/ bin/ls « $FOLDER »
echo "< / pre > »
;;
lsal)
echo "sortie de ls $FOLDER1 : < pre > »
/ bin/ls-al « $FOLDER1 »
echo "< / pre > »
;;
WOL)
echo "système de se réveiller : $FOLDER2 : < pre > »
/usr/bin/wakeonlan "$FOLDER2"
echo "< / pre > »
;;
lsb_release)
echo "Ubuntu version : < pre > »
/usr/bin/lsb_release - une
echo "< / pre > »
;;
cpuinfo)
echo "informations Cpu: < pre > »
cat/proc/cpuinfo
echo "< / pre > »
;;
*)
echo « Commande inconnue $CMD < br > »
;;
ESAC
FI
Imprimez le formulaire #
en-tête de page #
echo « < p > »
echo « < center > »
echo "commandes Bash < h2 > < / h2 > »
echo « < / center » >
echo « < p > »
echo « < p > »
echo « Choisir quelle commande que vous souhaitez exécuter »
echo "< forment la méthode achete = >"
echo "< input type = nom de la radio = cmd value = ifconfig contrôlé > ifconfig (configuration réseau) < br > »
echo "< input type = nom de la radio = cmd value = uname > uname - a (version du noyau) < br > »
echo "< input type = nom de la radio = cmd value = dmesg > dmesg (messages système) < br > »
echo "< input type = nom de la radio = cmd value = lsb_release > lsb_release (version Ubuntu) < br > »
echo "< input type = nom de la radio = cmd value = df > df -h (espace libre sur le disque) < br > »
echo "< input type = nom de la radio = cmd value = gratuit > gratuit (info mémoire) < br > »
echo "< input type = nom de la radio = cmd value = cpuinfo > informations Cpu < br > »
echo "< input type = nom de la radio = cmd value = hw > liste matériel < br > »
echo "< input type = nom de la radio = cmd value = lsuser > inscription utilisateur < br > »
echo "< input type = nom de la radio = cmd value = lsusb > lsusb (info de ports Usb) < br > »
echo "< input type = nom de la radio = cmd value = ls > ls--dossier < input type = nom du texte = dossier valeur = / mnt/flash >< br >"
echo "< input type = nom de la radio = cmd value = lsal > ls - al--dossier < input type = nom du texte = folder1 valeur = / mnt/flash >< br >"
echo "< input type = nom de la radio = cmd value = wol > wakeonlan (entrez l’adresse mac) < input type = nom du texte = valeur Dossier2 = 00:00:00:00:00:00 >< br >"
echo "< input type = soumettre > »
echo « < / form » >
echo « < / body > »
echo "< / html >"
[/ code]
Ensuite, vous aurez besoin pour le rendre exécutable.
$ chmod + x bash.cgi
La vous devez le copier dans votre répertoire cgi. (vérifiez qu’il n’existe pas déjà un fichier du même nom!).
$ sudo cp bash.cgi /var/ www/cgi-bin/.
Vous devriez être prêt pour faire le test maintenant.