小编Paw*_*lov的帖子

"-/filepath" ACTION 在 rsyslog 配置中是什么意思

我遇到了这个 Debian Linux 安装 (6.0.6),并检查了它的 /etc/rsyslog.conf,我看到这样的配置行:

auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)

我找不到任何关于在 rsyslog.conf(5) 中为文件操作添加破折号的任何信息,以及它的含义可能是什么,并且想知道它们实际上是做什么的。

linux rsyslog

15
推荐指数
1
解决办法
5142
查看次数

服务器端`TIME_WAIT`是如何工作的?

我知道在这方面有很多 SE 问题,我相信在谈到这一点之前,我已经阅读了尽可能多的问题。

“服务器端TIME_WAIT”是指在服务器端启动其 close() 的服务器端套接字对的状态。

我经常看到这些听起来自相矛盾的陈述:

  1. 服务器端TIME_WAIT是无害的
  2. 你应该设计你的网络应用程序让客户端启动 close(),因此让客户端承担 TIME_WAIT

我发现这个矛盾的原因是因为TIME_WAIT在客户端可能是一个问题——客户端可能会耗尽可用端口,所以本质上,上面建议将负担转移TIME_WAIT到可能有问题的客户端,从服务器端,这不是问题。

客户端TIME_WAIT当然只是少数用例的问题。大多数客户端 - 服务器解决方案将涉及一台服务器和许多客户端,客户端通常不会处理足够大的连接量以至于不会成为问题,即使他们这样做,也有一些“理智”的建议(而不是SO_LINGER与0超时,或tcp_tw的sysctl插手)作战客户端TIME_WAIT通过避免创建连接过多过快。但这并不总是可行的,例如对于如下类的应用程序:

  • 监控系统
  • 负载生成器
  • 代理

另一方面,我什至不明白服务器端TIME_WAIT有什么帮助。原因TIME_WAIT甚至存在,是因为它可以防止将陈旧的TCP片段注入它们不再属于的流中。对于客户端,TIME_WAIT它是通过简单地使无法创建与ip:port此陈旧连接可能具有的相同对的连接(使用的对被 锁定TIME_WAIT)来实现的。但是对于服务器端,这是无法阻止的,因为本地地址将具有接受端口,并且始终相同,并且服务器不能(AFAIK,我只有经验证明)仅仅因为传入的对等点将创建与套接字表中已存在的地址对相同的地址对。

我确实编写了一个程序,显示服务器端 TIME-WAIT 被忽略。此外,因为测试是在 127.0.0.1 上完成的,内核必须有一个特殊的位来告诉它它是服务器端还是客户端(否则元组将是相同的)。

来源:http : //pastebin.com/5PWjkjEf,在 Fedora 22 上测试,默认网络配置。

$ gcc -o rtest rtest.c -lpthread
$ ./rtest 44400 s # will do server-side close
Will initiate server close
... iterates …
Run Code Online (Sandbox Code Playgroud)

tcp

13
推荐指数
1
解决办法
5513
查看次数

标签 统计

linux ×1

rsyslog ×1

tcp ×1