访问端口执行脚本

访问端口执行脚本

要在访问服务器的特定端口时自动执行一个脚本,你可以使用 xinetdinetd 服务在指定端口监听请求,并在接收到请求时运行脚本。以下是使用 xinetd 的步骤:

如果你的系统没有安装 xinetd,你需要先安装它:

sh

sudo apt-get update sudo apt-get install xinetd

创建一个脚本文件,例如 execute_on_request.sh

sh

vim ~/execute_on_request.sh

在脚本文件中添加你想要执行的命令:

sh

#!/bin/bash  # 你的命令 
echo "Script executed at $(date)" >> /path/to/your/logfile.txt

/path/to/your/logfile.txt 替换为实际的日志文件路径。

设置脚本的可执行权限:

sh

chmod +x ~/execute_on_request.sh

创建一个新的 xinetd 服务配置文件:

sh

sudo vim /etc/xinetd.d/custom_service

在配置文件中添加以下内容:

sh

service custom_service {     
	type        = UNLISTED     
	port        = 12345     
	socket_type = stream     
	protocol    = tcp     
	wait        = no     
	user        = your_user_name     
	server      = /bin/bash     
	server_args =/home/your_user_name/execute_on_request.sh     disable     = no 
}

将以下内容替换为你的实际值:

  • port:替换为你希望监听的端口号。
  • your_user_name:替换为你的用户名。
  • /home/your_user_name/execute_on_request.sh:替换为你的脚本文件路径。

确保 xinetd 服务配置正常,然后重启服务:

sh

sudo service xinetd restart

使用 telnetcurl 来测试是否能够触发脚本执行:

sh

telnet localhost 12345

或者:

sh

curl localhost:12345

每次访问端口 12345,脚本 execute_on_request.sh 就会被执行一次。你可以在日志文件中查看执行结果。

这就是通过访问服务器特定端口来自动执行脚本的方法。确保安全性,避免未授权的访问。