Articles of linux

内部networking主机名的名称parsing

我打算标准化主机命名约定,并希望build立一个“内部”networking,以便在不同服务器之间轻松通信。 我们从多个不同的专用服务器提供商购买服务器,这些提供商没有物理连接到同一本地networking 目前在configurationnetworking服务器时,我们使用每台机器的IP地址。 我希望用“db1-fr.internalnet”这样的主机名代替它,以简化事情并使事情变得容易理解。 在每台机器上处理名称parsing的最佳方法是什么? 我目前正在计划在每个服务器的hosts文件中添加条目,但是维护性方面,这在规模上似乎很低。 我想尽量避免托pipe一个完整的DNS服务器只是为了内部networking查找,但如果这是推荐的方式,它当然是一个选项。 那么我的下一个问题就是,在哪里configuration这个DNS服务器呢? 如果我更换服务器范围的DNS服务器,事情就会开始中断。 是否有一个本地查找某个configuration文件?

具有多个作用域的Linux dhcpd服务器根据请求源分配IP

我已经在同一个接口(eth0)上configuration了一个具有多个作用域的Linux dhcpd服务器。 需要这些IP地址的设备(DHCP客户端)位于两个不同的远程networking上。 networking小组已经完成了所有configuration,包括中间的DHCP中继,所以请求以如下格式到达我的DHCP服务器: DHCPDISCOVER from macaddress via 10.238.16.10 (remote_network_1) DHCPDISCOVER from macaddress via 10.238.25.20 (remote_network_2) (我认为上面提到的IP属于将DHCP请求转发到我的服务器的远程路由器。) 现在,DHCP服务器正在成功地将来自第一个configuration范围(10.238.16.x)的IP分配给remote_network_1和remote_network_2请求的客户端。 我如何configuration它,以便当来自10.238.16.10的请求进来时,它分配一个10.238.16.X IP,当它来自10.238.25.20时,它分配一个10.238.25.X IP。 我知道还有其他的方法来解决这个问题 – 比如configurationdhcpd来侦听两个不同的接口等,但这对我来说不起作用。 我试过“选项广播地址”,但没有奏效。 我的dhcpd.conf: ddns-update-style none; default-lease-time 6000; max-lease-time 72000; authoritative; log-facility local7; subnet 10.238.24.0 netmask 255.255.255.248 { } shared-network DA { subnet 10.238.16.0 netmask 255.255.255.0{ range 10.238.16.52 10.238.16.254; option routers 10.238.24.9; option […]

无法绑定到服务器ldap:// <ipaddress>错误:无法联系LDAP服务器

我们正在运行Linux 2.6.32-431.3.1.el6.x86_64内核,并在/ var / log / messages中定期看到我们的用户空间服务器上显示的以下消息。 当消息出现时,我们也有用户指出他们无法访问networking驱动器空间。 Feb 6 20:10:40 <server_name> smbd[15502]: failed to bind to server ldap://<server-ip> with dn="cn=user,dc=some_domain,dc=some_domain,dc=some-domain" Error: Can't contact LDAP server Feb 6 20:10:40 <server_name> smbd[15502]: #011(unknown) Feb 6 20:10:41 <server_name> smbd[15503]: [2013/11/05 20:10:41.146650, 0] lib/smbldap.c:1225(smbldap_connect_system) Feb 6 20:10:41 <server_name> smbd[15503]: failed to bind to server ldap://<server-ip> with dn="cn=user,dc=some_domain,dc=some_domain,dc=some-domain" Error: […]

从Apache httpsredirect中排除单个文件

我在我的http.conf文件中有一个redirect规则,将所有HTTP请求redirect到HTTPS: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 这很好地作为一个整体的方法,但是我想排除 robots.txt被redirect到https( 所以它应该是http://www.mysite.com/robots.txt )这主要是因为谷歌拒绝抓取我的robots.txt通过SSL(?) 我尝试了几种不同的方式,但到目前为止,它是404的文件或忽略它,并转到https://www.mysite.com/robots.txt (根据网站的其余部分) 我尝试了以下几点: RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^robots.txt RewriteRule (.*)$ https://%{HTTP_HOST}/$1 [NC,R=301,L] 任何build议,将不胜感激。

使用pidstat或sar报告每个进程的IO统计信息

我试图跟踪一些“可疑”进程随着时间的推移使用。 理想情况下,要通过munin使这些统计数据可用,或直接推入石墨。 但是,作为一个起点,能够以合理的空间/资源高效的方式跟踪这种使用情况,这将是非常好的。 然后能够在一段时间内检索前10名IO消费者及其数据读/写统计信息。 pidstat -d 2似乎每隔几秒钟就产生一次最高IO消耗过程的输出。 而且我知道sar有一些内置的归档,但我不知道如何将它归档到pidstat (也许在SA1_OPTIONS ?我在debian / ubuntu上)。 除了pipe道pidstat到磁盘,然后在输出上运行一些收集/聚合,有没有办法与sar做同样的事情(但更有效),然后检索统计信息?

查找传输的TCP字节数

我有rhel4和rhel6主机。 我可以使用netstat -s来查看发送/接收的段数的信息。 我可以使用ifconfig来查看给定接口上发送/接收的字节数(对于我而言,只有一个是重要的,其余的总传输less于三个数量级)。 我怎样才能find通过TCP传输的总字节数? 编辑:我没有在有问题的主机上的root访问权限。

部署和configuration复杂的python应用程序scheme

挑战 我们新的应用程序使用几种服务 自定义构buildpostgresql, Redis的, 芹菜, RabbitMQ的, HAProxy的, nginx的, uwsgi, 大约4我们的内部过程(主要是python), AngularJS的webaplication, 我将以SaS模式发布它,这意味着所有这些服务都将托pipe在我们的云中(现在在AWS中,后来是OpenStack)。 每个客户将获得自己的实例。 安装将取决于客户需求/规模 – 在某些情况下,所有服务都将在单个虚拟机上运行,​​在某些情况下,每个服务将有多个虚拟机。 服务configuration取决于客户(如附加function)。 我希望有一个简单的方法来创build“演示”实例 – 只是让未来的客户玩我们的应用程序。 要求 我寻找一个能帮助我的解决scheme: 设置一个或一堆虚拟机(aws,openstack), configuration它们的通用规则, 从git master分支构build我们的软件(运行grunt for webaplication,twitter.pants for python), 部署服务, 扩展安装(添加更多虚拟机与选定的服务), 经过一段时间升级服务选定的版本, build议的解决scheme 我已经看到了多变的看起来不错,但它的发展不是为了生产。 我已经看到docker这更好,但我不确定是否足够有弹性来支持每个客户不同的容器configuration。 无论如何,我仍然需要一个工具来创build这些容器… 我build议使用ansible作为工具来创build虚拟机,configuration公共部分,然后在主机上部署服务。 我会保持每个客户/实例单独的库存。 Ansible清单组将允许在一个虚拟机上安装所有angular色(服务),或者将其安装在单独的虚拟机上。 我相信这也能帮助我们升级服务。 问题 我有一些问题: 您在我的设置中看到的任何问题? 在什么情况下可能是不够的,所以我希望有像docker这样的东西? 如何跟踪单独的实例? 如果我改变剧本,如何确保它在每个主机上运行? 是否有机会根据angular色和可靠的库存自动为每个虚拟机创build防火墙规则? 还有其他build议吗? 我非常感谢所有的反馈。

SSH在OpenStack节点上的访问

我已经用Mirantis Fuel设置了2个节点的OpenStack。 openstack部署后,我无法通过SSH访问控制器节点和计算节点,因为身份validation失败时,我尝试访问它们。 我在哪里可以find通过SSH访问节点的私钥? 谢谢。

Linux:ps / htop显示正在运行数百或数千天的进程,尽pipe主机刚刚重新启动

RHEL 6.3 我们昨晚刚刚重新启动,我有许多许多进程显示他们已经运行FOREVER。 例子: root 11 2 99 Feb23 ? 212429-04:31:07 [kworker/0:1] root 1 0 99 Feb23 ? 216-01:38:15 /sbin/init NTP看起来很健康: Feb 23 18:13:58 hostA ntpd[7539]: ntpd [email protected] Tue Jul 6 21:50:26 UTC 2010 (1) Feb 23 18:13:58 hostA ntpd[7540]: precision = 0.126 usec Feb 23 18:13:58 hostA ntpd[7540]: ntp_io: estimated max descriptors: 1024, initial […]

Linuxcaching与它无法访问的机器的IP路由

我有一个网关VPN和一个应用程序服务器。 应用服务器只知道VPN的网关。 VPN的网关知道vms托pipe的物理networking的网关。 问题:我无法从应用程序服务器访问api.twitter.com。 观察:caching中充满了显示物理网关 IP地址的条目。 这是一个摘录: ip -s route show cache 199.16.156.40 199.16.156.40 via 37.59.245.62 dev eth0 src 10.1.4.20 cache <redirected> used 170 age 22sec ipid 0x9e49 199.16.156.40 from 10.1.4.20 via 37.59.245.62 dev eth0 cache <redirected> age 25sec ipid 0x9e49 以199开头的IP是Twitter IP。 37.59.245.62是物理网关的IP地址。 10.1.4.20是VPN网关的VPN IP。 物理网关的IP只出现在处理Twitter服务器的条目中。 为什么这台机器caching路由与它没有直接访问的IP? 上一个问题显示,刷新caching可以暂时解决问题