我有一台带有sh脚本的ubuntu 18.04服务器,它可以根据用户输入控制其他脚本。
是否可以创建服务器的Web界面,从那里运行脚本,能够输入命令并读取输出?
我已经在服务器上安装了LAMP(将来还想创建一个登录页面并重定向到“脚本控制菜单”)。
关于应该从哪里开始或几行代码的任何建议,例如,我想访问http://10.10.10.1时有一个“连接”按钮,当按下该按钮以打开webCLI窗口并启动脚本时,还可以输入该窗口中的命令。
脚本称为vpn.sh,看起来像
#!/bin/sh
GREEN='\033[92m'
END='\033[0m'
bold=$(tput bold)
echo
echo
while true;
do
echo "Based on your input ${bold}${GREEN}bridge${END} or ${bold}${GREEN}router${END}, according VPN script will start, any other input will terminate"
echo
read modem
case $modem in
(bridge)
echo
sleep 1
echo
while true;
do
echo "${bold}${GREEN}Bridge${END}: Check direct routing(${bold}dr${END}), load VPN configurations(${bold}vpn${END}) or select another mode(${bold}q${END})"
read bridgem
case $bridgem in
(dr)
echo
sleep 1
echo "Direct routing selected"
echo
./dr.sh
echo ;;
(vpn)
echo
sleep 1
echo "Loading VPN configurations"
iptables -t nat -F
echo
echo "Building GRE tunnel"
./gre_server.sh
sleep 1
echo
echo "Starting VPN script"
sleep 1
python3 VPN_routes_server.py
echo ;;
(q)
iptables -t nat -F
break ;;
esac
done;;
(router)
echo
sleep 1
while true;
do
echo "${bold}${GREEN}eRouter${END}: Check direct routing(${bold}dr${END}), load VPN configurations(${bold}vpn${END}) or select another mode(${bold}q${END})"
read routerm
case $routerm in
(dr)
echo
sleep 1
echo "Direct routing selected"
echo
./dr_NAT.sh
echo;;
(vpn)
echo
sleep 1
echo "Loading VPN configurations"
iptables -t nat -F
echo
sleep 1
echo "Starting VPN script"
sleep 1
python3 VPN_routes_server_NAT.py
echo ;;
(q)
iptables -t nat -F
break;;
esac
done;;
(*) echo EXIT
break ;;
esac
done