小编Chr*_*ris的帖子

使用Ansible获取Linux网络接口名称?

使用Ansible获取Linux服务器的主网络接口名称的最佳方法是什么?这通常是/通常eth0但我们不能总是假设这种情况,并且最好动态地识别它.

我们使用Ansible配置防火墙,因此我们需要能够将接口名称作为我们使用的命令的一部分发出.

linux ansible

8
推荐指数
1
解决办法
1万
查看次数

如何在不使用二进制文件的情况下将tcpdump保存到文件中?

我想将数据包内容描述和数据包数据捕获到一个文件中,tcpdump以备日后检查.

目前我正在使用-w选项将数据包数据保存到文件:

tcpdump -c 100 -w /root/tcpdump.txt
Run Code Online (Sandbox Code Playgroud)

这将分组数据保存到文件中,但在每个分组之前还包括几行二进制.但是,我希望tcpdump在没有二进制文件的数据包数据本身(在同一文件中)之前显示数据包内容描述(运行时通常显示在STDOUT上的内容).

因此该文件应为每个数据包保存以下内容:

  1. 包内容描述
  2. 分组数据

我想要保存到文件的示例:

17:17:42.847059 IP some.server.com.17845 > some.host.net.55618: Flags [P.], seq 137568:137888, ack 1185, win 167, length 320
<-- Followed by the raw packet data here -->
Run Code Online (Sandbox Code Playgroud)

此信息将用于以后的文件分析,以便我们查看发往特定主机/地址的完整数据包.

任何人都可以建议如何做到这一点?

unix tcpdump

5
推荐指数
1
解决办法
2万
查看次数

如何在bash脚本中转义使用curl发布的JSON变量?

我通过他们的 API 在 bash 脚本中向 Mandrill 提交消息,“消息”变量的内容导致 API 调用返回错误:

An error occured: {"status":"error","code":-1,"name":"ValidationError","message":"You must specify a key value"}
Run Code Online (Sandbox Code Playgroud)

$message_body 变量的内容是:

Trigger: Network traffic high on 'server'
Trigger status: PROBLEM
Trigger severity: Average
Trigger URL:

Item values:

1. Network traffic inbound (server:net.if.in[eth0,bytes]): 3.54 MBytes
2. Network traffic outbound (server:net.if.out[eth0,bytes]): 77.26 KBytes
3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*

Original event ID: 84
Run Code Online (Sandbox Code Playgroud)

我不确定字符串的哪一部分将它扔掉,但似乎有些东西在提交给 Mandrill 的 API 时导致 JSON 无效。

如果我将上述消息更改为简单的内容,例如“Testing 123”,则消息将成功提交。

执行POST的代码如下:

#!/bin/bash
...
message_body = `cat message.txt`
msg='{ "async": false, "key": "'$key'", "message": …
Run Code Online (Sandbox Code Playgroud)

bash curl mandrill

2
推荐指数
1
解决办法
1536
查看次数

标签 统计

ansible ×1

bash ×1

curl ×1

linux ×1

mandrill ×1

tcpdump ×1

unix ×1