我只想 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) 我希望能够通过桌面上的单个 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 在屏幕下启动命令,以便我稍后登录并附加到我将手动启动的屏幕会话。
我见过有人建议将所有这些组合在一个流程中,但它们似乎有很多重叠的功能,所以我想深入了解为什么您可能想要在访问实际 Web 服务器之前通过 3 个不同的程序。
nginx:
漆:
快乐代理:
将所有这些链接到您的主要 Web 服务器之前是否只是为了获得它们的一些主要功能优势?
让这么多守护进程一起做类似的事情似乎很脆弱。
您的部署和订购偏好是什么?为什么?
为了监视服务器和 Web 服务器之间的 HTTP 流量,我目前使用tcpdump. 这工作正常,但我想摆脱输出中的一些多余数据(我知道tcpflow和wireshark,但它们在我的环境中不容易获得)。
从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 …
在 Linux 中,我编写了一些要在引导期间执行的脚本,并尝试了各种安装它们的方法。对于较大的脚本,我将放入/etc/init.d并链接适当的/etc/rc.d/rc?.d运行级别。对于较小的脚本,我将附加到/etc/rc.d/rc.local. 这个过程似乎很顺利。
现在我已经调整了我的一个脚本,但它失败了。我花了很长时间来诊断它,因为我似乎无法捕获错误输出。我已经检查/var/log/messages并浏览了其余部分,/var/log但找不到任何有用的东西。
有人知道吗:
提前致谢。
除了典型的 Heartbeat/Pacemaker/CoroSync 组合之外,在 Linux 上是否还有其他主要的自动故障转移替代方案?特别是,我正在 EC2 实例上设置故障转移,它只支持单播 - 没有多播或广播。我专门尝试处理我们拥有的少数软件,这些软件还没有自动故障转移功能并且不支持多主环境。这包括 HAProxy 和 Solr 等工具。
我有 Heartbeat+Pacemaker 工作,但我对此并不感到兴奋。以下是我的一些问题:
起搏器工作得很好,尽管它的功率使其难以设置。Pacemaker 的真正问题在于没有简单的方法来自动化配置。我真的很想启动一个 EC2 实例,安装 Chef/Puppet 并在没有我干预的情况下启动整个集群。
任何人都可以推荐一个 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 上工作并且是免费/开源的。如果有一个我也缺少的现有工具就好了!
我在远程机器上运行 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) /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) 问题解决了,但我写下来以备将来参考。
/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)