Paso 4: El programa principal.
Bash.cgi
[código]
i #! / bin/sh
echo "tipo de contenido: texto/html\n"
# leer en nuestros parámetros de
CMD ='echo "$QUERY_STRING" | sed - n ' s/^.*cmd=\ ([^ &] * \).*$/\1/p' | sed "s/%20//g" '
CARPETA ='echo "$QUERY_STRING" | sed - n ' s/^.*folder=\ ([^ &] * \).*$/\1/p' | sed "s/%20//g" | sed "s/%2F/\//g" '
Carpeta 1 ='echo "$QUERY_STRING" | sed - n ' s/^.*folder1=\ ([^ &] * \).*$/\1/p' | sed "s/%20//g" | sed "s/%2F/\//g" '
Carpeta2 ='echo "$QUERY_STRING" | sed - n ' s/^.*folder2=\ ([^ &] * \).*$/\1/p' | sed "s/%20//g" | sed "s/%2F/\//g" '
# cabecera de nuestro html
echo "< html >"
echo "< cabeza >< title > Bash CGI < / título >< / cabeza >"
echo "< body >"
prueba # si los parámetros se pasan
Si [$CMD]
entonces
caso "$CMD" en
ifconfig)
echo "salida de ifconfig: < pre >"
/ sbin/ifconfig
echo "< / pre >"
;;
uname)
echo "salida de uname - a: < pre >"
/ bin/uname - a
echo "< / pre >"
;;
dmesg)
echo "salida de dmesg: < pre >"
/ bin/dmesg
echo "< / pre >"
;;
DF)
echo "salida de df -h: < pre >"
/ bin/df -h
echo "< / pre >"
;;
libre)
echo "salida libre: < pre >"
/usr/bin/Free
echo "< / pre >"
;;
HW)
echo "Hardware listado: < pre >"
/usr/bin/lshw
echo "< / pre >"
;;
lsusb)
echo "lsusb: < pre >"
/usr/bin/lsusb
echo "< / pre >"
;;
lsuser)
echo "la lista de usuarios: < pre >"
/usr/bin/lsuser
echo "< / pre >"
;;
LS)
echo "salida de ls $FOLDER: < pre >"
/ bin/ls "$FOLDER"
echo "< / pre >"
;;
LSal)
echo "salida de ls $FOLDER1: < pre >"
/ bin/ls-al "$FOLDER1"
echo "< / pre >"
;;
WOL)
echo "sistema para despertar: $FOLDER2: < pre >"
/usr/bin/WakeOnLan "$FOLDER2"
echo "< / pre >"
;;
lsb_release)
echo "versión Ubuntu: < pre >"
/usr/bin/lsb_release - un
echo "< / pre >"
;;
cpuinfo)
echo "información Cpu: < pre >"
cat/proc/cpuinfo
echo "< / pre >"
;;
*)
echo "Comando desconocido $CMD < br >"
;;
ESAC
fi
# imprimir el formulario
encabezado de página #
echo "< p >"
echo "< center >"
echo "< h2 > Bash comandos < / h2 >"
echo "< /Center >"
echo "< p >"
echo "< p >"
echo "Elige qué comando desea ejecutar"
echo "< método del formulario = get >"
echo "< tipo de entrada = nombre de la radio = valor cmd = ifconfig controlada > ifconfig (configuración de red) < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = uname > uname - a (versión del núcleo) < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = dmesg > dmesg (mensajes del sistema) < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = lsb_release > lsb_release (versión Ubuntu) < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = df > df -h (espacio libre) < br >"
echo "< tipo de entrada = nombre de la radio = cmd valor = gratis > libre (info de memoria) < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = cpuinfo > información de Cpu < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = hw > Listado de Hardware < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = lsuser > Listado de usuario < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = lsusb > lsusb (info de puertos Usb) < br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = ls > ls--carpeta < tipo de entrada = nombre de texto = carpeta valor = / mnt/flash >< br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = lsal > ls - al--carpeta < tipo de entrada = nombre de texto = carpeta 1 valor = / mnt/flash >< br >"
echo "< tipo de entrada = nombre de la radio = valor cmd = wol > wakeonlan (Introduzca la dirección mac) < tipo de entrada = nombre de texto = valor Carpeta2 = 00:00:00:00:00:00 >< br >"
echo "< tipo de entrada = enviar >"
echo "< / forma" >
echo "< / cuerpo" >
echo "< / html >"
[/ code]
entonces usted necesitará hacerlo ejecutable.
$ chmod + x bash.cgi
Debe copiar en el directorio cgi. (Verifique que no hay ya un archivo del mismo nombre!).
$ sudo cp bash.cgi httpd www/cgi-bin/.
Estará preparado para probar ahora.