小编qua*_*nta的帖子

挖掘只显示答案

我只想 dig 来显示我的查询的答案。

通常,它会打印出很多这样的附加信息:

;; <<>> DiG 9.7.3 <<>> google.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55839
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.                     IN      A

;; ANSWER SECTION:
google.de.              208     IN      A       173.194.69.94

;; Query time: 0 msec
;; SERVER: 213.133.99.99#53(213.133.99.99)
;; WHEN: Sun Sep 23 10:02:34 2012
;; MSG SIZE  rcvd: 43
Run Code Online (Sandbox Code Playgroud)

我希望将其简化为答案部分。

dig 有很多选择,我发现一个很好的选择是 +noall +answer

; <<>> DiG …
Run Code Online (Sandbox Code Playgroud)

dig

68
推荐指数
3
解决办法
7万
查看次数

如何从我的桌面通过远程服务器上的 ssh 命令启动屏幕会话?

我希望能够通过桌面上的单个 ssh 命令在远程服务器上启动屏幕会话。但是, screen 似乎需要一个终端,通过 ssh 运行命令时该终端不可用。

所以显而易见

ssh root@my.machine screen "tail -f /var/log/messages"
Run Code Online (Sandbox Code Playgroud)

(作为示例)不起作用,并给出

Must be connected to a terminal.
Run Code Online (Sandbox Code Playgroud)

我希望 ssh 在屏幕下启动命令,以便我稍后登录并附加到我将手动启动的屏幕会话。

ssh terminal gnu-screen tty

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

订购: 1. nginx 2. 清漆 3. haproxy 4. 网络服务器?

我见过有人建议将所有这些组合在一个流程中,但它们似乎有很多重叠的功能,所以我想深入了解为什么您可能想要在访问实际 Web 服务器之前通过 3 个不同的程序。

nginx:

  • ssl:是的
  • 压缩:是
  • 缓存:是
  • 后端池:是

漆:

  • ssl:不(stunnel?)
  • 压缩:?
  • 缓存:是(主要功能)
  • 后端池:是

快乐代理:

  • ssl:没有(stunnel)
  • 压缩:?
  • 缓存:无
  • 后端池:是(主要功能)

将所有这些链接到您的主要 Web 服务器之前是否只是为了获得它们的一些主要功能优势?

让这么多守护进程一起做类似的事情似乎很脆弱。

您的部署和订购偏好是什么?为什么?

nginx web varnish haproxy

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

使用 tcpdump 监控 HTTP 流量

为了监视服务器和 Web 服务器之间的 HTTP 流量,我目前使用tcpdump. 这工作正常,但我想摆脱输出中的一些多余数据(我知道tcpflowwireshark,但它们在我的环境中不容易获得)。

tcpdump手册页:

打印所有进出端口 80 的 IPv4 HTTP 数据包,即仅打印包含数据的数据包,而不是,例如,SYN 和 FIN 数据包以及仅 ACK 数据包。

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

这个命令

sudo tcpdump -A 'src example.com 和 tcp 端口 80 和 (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2) ) != 0)'

提供以下输出:

19:44:03.529413 IP 192.0.32.10.http > 10.0.1.6.52369: Flags [P.], seq 918827135:918827862, ack 351213824, options 437noval, 439pnoval, 437noval, 4399, 439

E...@....... ....P..6.0.......D...... __..e=3...__HTTP/1.1 200 OK …

tcpdump tshark

42
推荐指数
3
解决办法
11万
查看次数

如何从 Linux init.d/rc.d 脚本中查找错误消息?

在 Linux 中,我编写了一些要在引导期间执行的脚本,并尝试了各种安装它们的方法。对于较大的脚本,我将放入/etc/init.d并链接适当的/etc/rc.d/rc?.d运行级别。对于较小的脚本,我将附加到/etc/rc.d/rc.local. 这个过程似乎很顺利。

现在我已经调整了我的一个脚本,但它失败了。我花了很长时间来诊断它,因为我似乎无法捕获错误输出。我已经检查/var/log/messages并浏览了其余部分,/var/log但找不到任何有用的东西。

有人知道吗:

  1. 这些错误消息是在某处自动捕获的吗?
  2. 如果没有,我如何从我的 init.d 脚本中捕获 stdout/stderr?

提前致谢。

linux logging rc.d init.d

30
推荐指数
4
解决办法
11万
查看次数

Heartbeat、Pacemaker 和 CoroSync 的替代品?

除了典型的 Heartbeat/Pacemaker/CoroSync 组合之外,在 Linux 上是否还有其他主要的自动故障转移替代方案?特别是,我正在 EC2 实例上设置故障转移,它只支持单播 - 没有多播或广播。我专门尝试处理我们拥有的少数软件,这些软件还没有自动故障转移功能并且不支持多主环境。这包括 HAProxy 和 Solr 等工具。

我有 Heartbeat+Pacemaker 工作,但我对此并不感到兴奋。以下是我的一些问题:

  • 心跳 - 就其本身而言,仅限于两个节点。我想要 3+。
  • 起搏器 - 无法自动配置。集群必须以法定人数运行,然后它仍然需要手动配置。
  • CoroSync - 不支持单播。

起搏器工作得很好,尽管它的功率使其难以设置。Pacemaker 的真正问题在于没有简单的方法来自动化配置。我真的很想启动一个 EC2 实例,安装 Chef/Puppet 并在没有我干预的情况下启动整个集群。

linux high-availability heartbeat pacemaker corosync

27
推荐指数
3
解决办法
4万
查看次数

监控端口上传输到/从 IP 地址的字节数

任何人都可以推荐一个 linux 命令行工具来监视本地服务器和指定 IP 地址/端口之间传输的字节数。

等效的 tcpdump 命令将是:

tcpdump -s 0 -i any -w mycapture.trc port 80 host google.com

输出:

46 packets captured
131 packets received by filter
0 packets dropped by kernel
Run Code Online (Sandbox Code Playgroud)

我想要类似的输出:

54 bytes out, 176 bytes in
Run Code Online (Sandbox Code Playgroud)

我希望它在 RHEL 上工作并且是免费/开源的。如果有一个我也缺少的现有工具就好了!

linux packet-analyzer tcpdump packet-capture tshark

20
推荐指数
3
解决办法
4万
查看次数

突然,ssh_exchange_identification:连接被远程主机关闭

我在远程机器上运行 Ubuntu 10.10。我每天 ssh 都没有问题,但今天突然出现以下错误:

ssh_exchange_identification: Connection closed by remote host

如果我与 连接-vv,我会得到以下信息:

OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/bla/.ssh/config
debug1: Applying options for ubuntu-server
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to ubuntu-server.com [123.123.123.123] port 22.
debug1: Connection established.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /Users/bla/.ssh/id_rsa type -1
debug1: identity file /Users/bla/.ssh/id_rsa-cert type -1
ssh_exchange_identification: …
Run Code Online (Sandbox Code Playgroud)

ubuntu ssh

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

无法切换,ssh 到特定用户:su:无法设置用户 ID:资源暂时不可用?

/var/log/secure

su: pam_keyinit(su-l:session): Unable to change UID to 500 temporarily
su: pam_keyinit(su-l:session): Unable to change UID to 500 temporarily
su: pam_unix(su-l:session): session opened for user adtech by root(uid=0)
su: pam_unix(su-l:session): session closed for user adtech
Run Code Online (Sandbox Code Playgroud)

我猜这是由每个用户限制引起的,但与其他用户相比没有什么不同。

这是ulimit -n为了adtech

[adtech@hmaster87 root]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 192025
max locked memory       (kbytes, -l) 64
max memory …
Run Code Online (Sandbox Code Playgroud)

resources java nexus ulimit

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

MySQL在旋转后不会将错误记录到新文件中吗?

问题解决了,但我写下来以备将来参考。

/root/.my.cnf

[mysqladmin]
user            = root
password        = pa$$w0rd
Run Code Online (Sandbox Code Playgroud)

/etc/logrotate.d/mysql

/var/log/mysql-slow.log /var/log/mysqld.log {
    daily
    rotate 7
    dateext
    compress
    missingok
    #notifempty
    sharedscripts
    create 644 mysql mysql
    postrotate
        /usr/bin/mysqladmin flush-logs
    endscript
}
Run Code Online (Sandbox Code Playgroud)

logrotate 从命令行运行时工作正常:

# logrotate -v -f /etc/logrotate.d/mysql
Run Code Online (Sandbox Code Playgroud)

但是在凌晨 4 点从 cron 运行时它不起作用日志文件已旋转但 MySQL 不会将错误记录到新创建的文件中:

-rw-r--r-- 1 mysql mysql      0 Aug  7 10:13 /var/log/mysqld.log
-rw-r--r-- 1 mysql mysql     20 Aug  4 04:04 /var/log/mysqld.log-20120804.gz
-rw-r--r-- 1 mysql mysql     20 Aug  5 04:04 /var/log/mysqld.log-20120805.gz
-rw-r--r-- 1 mysql mysql     20 Aug  6 16:28 /var/log/mysqld.log-20120806.gz
Run Code Online (Sandbox Code Playgroud)

mysql logrotate

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