gpt4 book ai didi

ubuntu - 当我在 cgi 中运行和回显 lsof 时没有显示输出 - Ubuntu

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:38 34 4
gpt4 key购买 nike

我最近开始使用cgi。由于我必须显示某些端口的端口使用信息,我编写了以下代码:

#!/bin/bash

echo "Content-type: text/html"
echo ""
echo "<html><head><title>PortInfo</title></head><body><center>"
echo "<h1>Port 80 Usage Info</h1>"

#method1
echo "<pre> $(lsof -i :80) </pre>"

#method2
echo "$(lsof -i :80 > /home/shine/Desktop/tmp.txt)"
echo "<pre> $(cat /home/shine/Desktop/tmp.txt) </pre>"

echo "<center>Information generated on $(date)</center>"
echo "</center></body></html>"

方法一:这里的问题是 echo "<pre> $(lsof -i :80) </pre>"不提供任何输出。

方法二:在这个方法中 echo "$(lsof -i :80 > /home/shine/Desktop/tmp.txt)"永远不会像它应该做的那样在桌面上创建一个名为 tmp.txt 的文件。

重要说明:上面指定的两种方法一旦在终端中执行就可以完美运行。

最佳答案

所以我找到了我一直在寻找的答案,更像是一个替代方案。

有人在某处提到了一些关于 cron 脚本的事情,所以我做了以下事情。

第一步:

sudo crontab -e

为 nano 编辑器输入 2

添加以下行:

* * * * * lsof -i :80 > /home/shine/port80.txt
* * * * * lsof -i :3000 > /home/shine/port3000.txt

注意:以上几行代码会生成两个包含80和3000端口信息的文本文件每分钟在当前用户的主目录中。

ctrl+oenterctrl+x保存退出。

第二步:

在apache的www目录下使用以下代码创建一个 php 文件。

<?php

$output80 = shell_exec("cat '/home/shine/reports/port80.txt'");
echo "<pre>$output80</pre>";
$output3000 = shell_exec('cat "/home/shine/reports/port3000.txt"');
echo "<pre>$output3000</pre>";

?>

这是我目前能想到的使 lsof 在网页上工作的唯一方法。

关于ubuntu - 当我在 cgi 中运行和回显 lsof 时没有显示输出 - Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766175/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com