Stap 4: Het hoofdprogramma.
bash.cgi
[code]
i #! / bin/sh
echo "Content-type: text/html\n"
# Lees in onze parameters
CMD ='echo "$QUERY_STRING" | sed - n ' s/^.*cmd=\ ([^ &] * \).*$/\1/p' | sed "s/%20/ /g" '
MAP ='echo "$QUERY_STRING" | sed - n ' s/^.*folder=\ ([^ &] * \).*$/\1/p' | sed "s/%20/ /g" | sed "s/%2F/\//g" '
Map1 ='echo "$QUERY_STRING" | sed - n ' s/^.*folder1=\ ([^ &] * \).*$/\1/p' | sed "s/%20/ /g" | sed "s/%2F/\//g" '
Map2 ='echo "$QUERY_STRING" | sed - n ' s/^.*folder2=\ ([^ &] * \).*$/\1/p' | sed "s/%20/ /g" | sed "s/%2F/\//g" '
# onze HTML-header
echo "< html >"
echo "< hoofd >< titel > Bash CGI < / title >< / head >"
echo "< body >"
# test als geen parameters zijn doorgegeven
Als [$CMD]
vervolgens
in geval "$CMD"
ifconfig)
echo "uitvoer van ifconfig: < pre >"
/ sbin/ifconfig
echo "< / pre >"
;;
uname)
echo "uitvoer van uname - a: < pre >"
/ bin/uname - a
echo "< / pre >"
;;
dmesg)
echo "Output van dmesg: < pre >"
/ bin/dmesg
echo "< / pre >"
;;
DF)
echo "Output van df -h: < pre >"
/ bin/df -h
echo "< / pre >"
;;
gratis)
echo "Output van gratis: < pre >"
/usr/bin/free
echo "< / pre >"
;;
HW)
echo "Hardware aanbieding: < pre >"
/usr/bin/lshw
echo "< / pre >"
;;
lsusb)
echo "lsusb: < pre >"
/usr/bin/lsusb
echo "< / pre >"
;;
lsuser)
echo "lijst van gebruikers: < pre >"
/usr/bin/lsuser
echo "< / pre >"
;;
LS)
echo "Output van ls $FOLDER: < pre >"
/ bin/ls "$FOLDER"
echo "< / pre >"
;;
lsal)
echo "Output van ls $FOLDER1: < pre >"
/ bin/ls-al "$FOLDER1"
echo "< / pre >"
;;
wol)
echo "systeem om wakker: $FOLDER2: < pre >"
/usr/bin/wakeonlan "$FOLDER2"
echo "< / pre >"
;;
lsb_release)
echo "Ubuntu versie: < pre >"
/usr/bin/lsb_release - een
echo "< / pre >"
;;
cpuinfo)
echo "processorgegevens: < pre >"
kat/proc/cpuinfo
echo "< / pre >"
;;
*)
echo "Unknown command $CMD < br >"
;;
ESAC
fi
# print het formulier
# de koptekst van de pagina
echo "< p >"
echo "< center >"
echo "< h2 > Bash commando's < / h2 >"
echo "< / center >"
echo "< p >"
echo "< p >"
echo 'Kies welke opdracht die u wilt uitvoeren'
echo "< methode get = >"
echo "< input type = radio naam = waarde van cmd = ifconfig gecontroleerd > ifconfig (netwerkconfiguratie) < br >"
echo "< input type = radio naam = waarde van cmd = uname > uname - a (kernelversie) < br >"
echo "< input type = radio naam = waarde van cmd = dmesg > dmesg (systeemberichten) < br >"
echo "< input type = radio naam = waarde van cmd = lsb_release > lsb_release (Ubuntu versie) < br >"
echo "< input type = radio naam = waarde van de cmd df = > df -h (vrije schijfruimte) < br >"
echo "< input type = radio naam = waarde van cmd = gratis > gratis (geheugen info) < br >"
echo "< input type = radio naam = waarde van cmd = cpuinfo > processorgegevens < br >"
echo "< input type = radio naam = waarde van de cmd hw = > Hardware aanbieding < br >"
echo "< input type = radio naam = waarde van cmd = lsuser > gebruiker aanbieding < br >"
echo "< input type = radio naam = waarde van cmd = lsusb > lsusb (Usb poorten info) < br >"
echo "< input type = radio naam = waarde van cmd = ls > ls--map < input type = tekstnaam = map waarde = / mnt/flash >< br >"
echo "< input type = radio naam = waarde van cmd = lsal > ls - al--map < input type = tekstnaam Map1 waarde = / mnt/flash = >< br >"
echo "< input type = radio naam = waarde van cmd = wol > wakeonlan (Voer mac-adres) < input type = tekstnaam = map2 waarde = 00:00:00:00:00:00 >< br >"
echo "< input type = submit >"
echo "< / form >"
echo "< / body >"
echo "< / html >"
[/ code]
u moet het uitvoerbaar maken.
$ chmod + x bash.cgi
U moet kopiëren naar je cgi-directory. (Controleer of dat er nog geen een bestand met dezelfde naam!).
$ sudo cp bash.cgi /var/ www/cgi-bin/.
U moet bereid om het te testen nu.