需求非常简单,收到一个 http 请求就执行一个对应的 shell 脚本,以前一般使用 python+Flask ,现在想问问有什么开箱即用的程序可以做到?
1
haython 2023-03-22 19:04:52 +08:00
golang 几行代码吧
|
2
dilu 2023-03-22 19:15:35 +08:00
goland cmd 包
php exec 都很简单 自己搜一下关键词 十几分钟就能实现 |
3
Aloento 2023-03-22 19:20:05 +08:00
C#也差不多
```c# var app = WebApplication.Create(args); app.MapGet("/", () => "Hello World!"); app.Run(); ``` |
4
my3157 2023-03-22 19:50:20 +08:00
```shell
while true; do echo -e "HTTP/1.1 200 OK\n\n $(uptime)" | nc -l -p 8080 -q 1; done ``` |
5
ysc3839 2023-03-22 20:13:16 +08:00 via Android
收到请求执行程序就是标准的 CGI ,用 lighttpd 应该可以
|
6
zhujinliang 2023-03-22 20:17:54 +08:00
ChatGPT 的回复:
以下是实现的示例代码: package main import ( "fmt" "log" "net/http" "os/exec" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { cmd := exec.Command("./script.sh") // shell 脚本文件名 output, err := cmd.Output() if err != nil { fmt.Fprintf(w, "执行 shell 脚本失败:%v", err) return } fmt.Fprintf(w, "执行结果:%s", output) }) log.Fatal( http.ListenAndServe(":8080", nil)) } 在该示例中,收到任何 HTTP 请求都会执行名为 script.sh 的 shell 脚本文件,并将结果返回给客户端。客户端可以使用任何 HTTP 客户端工具(例如 curl )发送请求。 需要注意的是,确保 shell 脚本文件具有可执行权限,可以使用 chmod +x script.sh 命令赋予执行权限。另外,需要注意脚本文件的路径,也可以使用绝对路径以确保能够正常执行。 |
7
DOLLOR 2023-03-22 20:23:28 +08:00
看你的“简易”要简易到什么程度,如果仅仅是拿到一个 get ,就执行一段脚本,python 自带的 http.server 就可以。
https://docs.python.org/3/library/http.server.html |
8
xujinkai 2023-03-22 20:30:16 +08:00 via Android
|
9
w07128597 2023-03-22 20:32:30 +08:00 via iPhone
https://github.com/adnanh/webhook
这个库专门干这个的,go 写的部署也方便 |
10
swulling 2023-03-22 20:41:09 +08:00 via iPhone
我用 ChatGPT 用 Bash 做了一个,还可以接受 Post 参数作为命令参数。
但是本站不欢迎 ChatGPT 回复,所以就不贴了。 |
11
mmdsun 2023-03-22 21:05:44 +08:00
你这个写个 shell 就可以了,如果稍微复杂点功能,那试试看:
https://dotnet.microsoft.com/zh-cn/apps/aspnet/apis CRUD 全是是一句话搞定,跨平台。支持顶级语句,也不用导包。 |
12
julyclyde 2023-03-26 19:17:37 +08:00
|