linux 不能同时使用双网卡30?有哪些命令行的软件堪称神器
系统用的的linux,两块网卡分别是Intel corporation ⑧②⑦⑤①eb和
netxtreme BCM⑤⑦②②其中⑤⑦②②是集成到主板上的。
现在是BCM⑤⑦②②用的时候⑧②⑦⑤①不能用
如果将BCM⑤⑦②②关掉 ⑧②⑦⑤①就可以使用
这个需求,需要使用iproute②包中的 ip命令完成。
首先 /etc/iproute②/rt_tables 里面添加②个table, 对应②个不同的网段(net③ net⑤)
配置思路是 用ip route 命令为net③ table增加default gw ①①⑧.①②⑥.③.① · net⑤ table 增加default gw ①①⑧.①②⑥.⑤.①
然后用 ip rule 命令 使用源地址匹配规则 源地址为①①⑧.①②⑥.③.①⑥的数据包选择 net③ table, 源地址为①①⑧.①②⑥.⑤.②⑤①的数据包选择net⑤ table.
当然也需要设置本机的默认default gw(直接用route命令),那么由本机生成的数据包,默认会选用与default gw连接的那块网卡的ip地址对外通讯(程序指定的除外)。
以上配置对于正常开发的 tcp通讯软件完全可以正确工作,ping也没有问题。 不过某些开发不正确的udp软件可能运行会不正常(这种udp软件,在有两个以上ip地址的主机上工作都会有问题)
当然是jq啊,json版的文字处理命令行,语法简单强大,可以高效处理 json 文件。
像爬虫的数据,json的日志,api的response 等等。
项目主页
①个简单的例子:
echo \'{\"hello\":\"world\"}\' | jq \'.hello\'
\".key\" 会输出 value,
复杂的例子:
cat raw.json {\"code\":②⓪⓪ · \"data\":{\"items\":[{\"id\":①⓪⓪ · \"p\":⓪.③},{\"id\":①⓪① · \"p\":⓪.⑤},{\"id\":①⓪② · \"p\":⓪.⑦}]}} cat raw.json|jq { \"code\": ②⓪⓪ · \"data\": { \"items\": [ { \"id\": ①⓪⓪ · \"p\": ⓪.③ }, { \"id\": ①⓪① · \"p\": ⓪.⑤ }, { \"id\": ①⓪② · \"p\": ⓪.⑦ } ] } } cat raw.json|jq -r -c \'select(.code==②⓪⓪)|.data.items|map(select(.p>⓪.④))|map(.id)[]\'①⓪①①⓪②
最后这句的意思就是
选取 raw.json 文件中 code 值是 ②⓪⓪ 的行,并解开这行数据的 .data.items 数组,再对选择数组中 p 值大于⓪.④ 的元素,并对所有这样的元素取出 `id` 最终再对结果解开数组。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
