草庐IT

bash - Debian:使用 TCP 的 Bash 电子邮件

在服务器上,我目前在使用Swiftmailer生成的日志中间歇性地收到“421意外故障,请稍后再试”。为了调试它,使用命令:openssls_client-crlf-connectwww.somesite:443我可以成功发送邮件。我想将所有谈判等放在bash脚本中,以便我重复运行它并查看是否有任何特定情况会引发421错误。我遇到过几个使用语法的例子:exec$fd"/dev/tcp/${SERVER}/${PORT}"然而,正如其他答案中所述,在构建bash时需要启用此功能,而Debian不启用此功能。除了使用此设置(我认为是--enable-net-redirections)重新编

linux - 无法使用 Bash 脚本连接到 POP3 服务器

我在shell脚本中遇到了一个奇怪的问题。我正在尝试编写一个简单的脚本来连接到POP3服务器并计算邮箱中的邮件数量。服务器上的Bash版本是:3.2.25(1)-Linux机器上的发行版。当我手动输入命令来执行此操作时,它会起作用。$telnet110Trying...Connectedto.Escapecharacteris'^]'.+OKTheMicrosoftExchangePOP3serviceisready.USERsadmin+OKPASSsadmin+OKUsersuccessfullyloggedon.STAT+OK110320quit+OKMicrosoftExcha

bash - 捕获 bash exec I/O 重定向中的错误输出

我想在bash中打开一个TCP套接字,使用/dev/tcp/host/portpsuedo-devicesyntax,但是如果host/port端点没有监听,我需要从容地恢复。如果我所做的只是将数据发送到套接字或从中提取数据,这很容易,因为我可以只使用一次性重定向,即:echo'ping'2>>(logger)>/dev/tcp/127.0.0.1/8080或者,从套接字读取:cat2>>(logger)其中logger是标准logger将标准输入中的行写入系统日志。问题是在某些情况下我需要向套接字写入请求并获得响应。所以我需要用exec打开套接字的文件描述符,但在这种情况下,捕获“-

bash - 根据客户端请求发送响应

我正在尝试创建一个套接字,让客户端根据他们的请求接收响应,但我不知道如何在CentOS7上实现这一点。到目前为止,我已经在端口100上打开了套接字并将客户端请求保存在一个文件中:#!/bin/shnc-lvk88.109.110.161100>port100.txt2>&1作为客户,我发送请求:echo"Hello"|nc88.109.110.161100文件中填充了:Ncat:Version6.40(http://nmap.org/ncat)Ncat:Listeningon88.109.110.161:100Ncat:Connectionfrom88.109.110.161.Ncat

linux - 测量程序的网络流量总量

我的问题如下:我有很多小程序,需要知道它们通过网络传输的数据量。通信使用tcp/ip。我事先知道端口和ip。基本上我想测量传输的数据类似于“时间”测量时间的方式,只是输出类似sent:3.5kBreceived:4.2kB而不是时间测量。我确定有一种方法可以做到这一点,但我发现的所有程序要么只是给我包(如tcpdump),要么以交互方式显示带宽利用率。带宽对我没有帮助,因为简单地将运行时的带宽测量相加是不精确的。我在使用tcpdump时遇到的主要问题是,我在客户端工作,但我只能在服务器上捕获。所以我尝试过的方法是ssh-tserver"sudotcpdump>capture&"time

bash - 将网络流量捕获为图像

我正在尝试创建一个扫描所有网络流量并提取jpg和gif图像的解决方案。这些图像可以保存到一个目录中并由多个“幻灯片”应用程序中的任何一个显示,或者也许有一种简单的方法可以实时显示它们。我可以使用一台运行MountsinLion的Mac笔记本电脑、一个终端和内置的无线设备。关于已经执行此操作且将在这些系统要求下运行的应用程序的任何建议,或者如果我可以将shell命令放在一起,则可能是一个简单的集合? 最佳答案 经过一番搜索,我偶然发现了一个名为driftnet的软件。这是一个网络图像嗅探器,实际上在Fedora的yum存储库中(并且可

c++ - 使用 "ctrl c"终止程序时程序不会停止

我有一个使用tcp套接字进行通信的程序(C++编译)。该程序配置为两种模式。假设模式A和模式B。启动程序模式A,它会给出一些类似的打印:waitingconnectionsonport1234localendpoint:0.0.0.0:1234//IthinkitisusingboostforTCPsocket然后启动模式B。他们会找到对方并完美运行。问题是,如果我启动模式A,然后使用“ctrlc”以模式A终止应用程序。它会使端口在那里打开。当我启动模式B时,它也会找到连接并运行错误,因为A不存在。我有一个bash来运行应用程序,我想问一下如何强制关闭该端口?(以bash或其他可能的方

linux - 如何在 Linux 中激活 TCP Fast Open

我有2台Linux电脑(PC1:内核3.13.0-37和PC2:内核3.11.0-12)PC1-------PC2(TCPserverport4410)我从PC1发送一个带有TCP快速打开(快速打开Cookie请求)的tcp数据包我期待从带有TCP选项(快速打开Cookie:xxxxxxx)的服务器得到这样的答复:但是我得到了一个没有TCP选项的tcp包(FastOpenCookie:xxxxxxx)。我想知道是否需要在我的PC2(linux)上进行配置以激活TCPFasttOpen选项。对于TCP服务器,我正在运行一个php脚本:$sock=socket_create(AF_INET

bash - 读取和写入相同的 netcat tcp 连接

假设我写入一个netcat连接:tail-f${file}|nclocalhost7050|do_whatever|nclocalhost7050这里发生的是我们有两个套接字连接,来做一些请求/响应。但出于某些原因,这并不理想。我想做的是重用相同的连接,进行读取和写入。有谁知道如何只重用一个netcat连接? 最佳答案 在UNIX中执行此操作的正确方法是使用后管道。您可以按如下方式进行:首先,创建一个管道:mknodbkpipep这将创建一个名为bkpipe的管道类型文件。接下来,弄清楚你需要做什么。这里有两个有用的场景。在其中,将

git bash---打开当前路径所在文件夹

0Preface/Foreword在Windows操作系统中使用gitbash时,可以通过命令直接打开当前路径下的文件夹,命令如下explorer.