Articles of linux

同一台服务器上有多个MongoDB实例

我们在CentOS 6.3上build立了一个MongoDB开发服务器,并能够使用单独的configuration文件和rc脚本来分离不同的项目。 现在我们正在考虑设置一个MongoDB生产环境。 我读过,不build议在生产中的同一台服务器上托pipe多个MongoDB实例。 这是否意味着每个项目都需要自己的生产MongoDB环境? 这些项目不是非常“大”,所以不需要太多的资源,所以感觉就像我们把自己的主机放在一边。 也许我们只需要摆脱RDBMS世界。 我们将监视我们的开发服务器,看看它的价格,但我正在寻找一些洞察力和一些自己的个人经验,以补充我读过的东西。

如何使用hdparm修复未决的扇区?

SMART正在说服我的服务器的硬盘上的一个未决的部门。 我读过很多文章,build议使用hdparm“轻松”强制磁盘重新定位坏扇区,但我找不到正确的方法来使用它。 我的“smartctl”中的一些信息: Error 95 occurred at disk power-on lifetime: 20184 hours (841 days + 0 hours) When the command that caused the error occurred, the device was active or idle. After command completion occurred, registers were: ER ST SC SN CL CH DH — — — — — — — 40 51 00 d7 […]

平衡(当前性vs稳定性)linux服务器分布

我是桌面和服务器上的Gentoo的长期用户。 作为一名软件工程师,我喜欢它的灵活性和可定制性(以及这是一个前沿和滚动发布的事实)。 但是对于我的新服务器,我想用不同的发行版。 主要是因为编译所有东西都会成为虚拟服务器上的障碍,但也是因为Gentoo太过于stream血,有时候更新版本应该已经被更好地testing和推迟了。 (作为一个方面说明:多年来,我已经成功地部署/维护了几个Gentoo机器,大部分时间,事情变得非常顺利,机器很棒。) 所以我想问问社区根据经验(而不是意见)的build议什么分布将最好地符合以下标准: 一般 滚动版本或非常好(可靠)的就地升级path 既没有完全过时,也没有绝对出血的封装存储库 Python 2.7 / 3.3(系统将主要部署python / django应用程序) 最近的gcc(> = 4.7) 维护良好,良好的社区 灵活和可定制 应该可以并排安装不同的gcc或python版本 安全 签署(或以其他方式保护)软件包储存库 理智/安全的编译器标志(为了安全性而不是性能) 及时的安全更新和专门的安全团队/公布名单 想到的是CentOS和Debian,但不幸的是,这两者在包装方面都比较落后。 我正在关注Ubuntu,但他们正式支持的软件(主要/限制性回购)与宇宙或其他发行版相比是相当小的。 我也不是很确定他们维护官方软件包的安全性(关于安全性问题),我不太喜欢他们的公司(=封闭)心态,因为在做出影响他们用户的决策时。 在一个侧面说明:我最近安装了一个朋友12.10桌面,并没有真正的印象。 ArchLinux接近Gentoo ,减去包编译,恕我直言。 我还没有自己尝试过,但是立即脱颖而出(负面的)是相当小的核心团队和失踪的安全团队。 似乎没有专门的安全列表,他们只是最近才整合了包裹签名(我不知道这是否是强制性的)。 也有相当多的软件包只能通过AUR或不同的方式来支持。 关于这件事我没有什么可说的。 OpenSuSE也是我正在关注的,但是我最后一次尝试SuSE的时间是在内核1.x天,诚实地说(当时我是一个非常年轻的怪胎:P)。 所以我现在对它的现状几乎一无所知。 Fedora老实说也是我曾经想过的。 它通常很好的维护和(如果不延迟几个月)有一个很好的发布时间表。 另一方面,我读了很多关于Fedora 18的坏消息,特别是升级path。 而且这绝对是非常stream血的边缘。 没有多less我可以添加到这个相当长的职位,除了感谢您阅读本,并花时间。 🙂 UPDATE @ 2024UTC 我觉得我需要更新我的问题。 即使我绝对同意给出的答案,但他们并不是我所期待的。 所以这里有几点希望澄清我的情况: 我一直在维护服务器10年以上,所以(至less现在是这样),我没有考虑聘请某人来帮助我或者减轻负担。 我知道我的Linux的方式。 这是我的主要系统15年左右。 而作为一名软件工程师和极客,我不会把它交易给世界。 🙂 […]

如何在AWS实例上将Apache更新到2.2.24

我有一个托pipe在Amazon AMI Linux实例上的网站。 我们最近有一个PCI扫描,我们没有通过扫描,因为我们安装了Apache 2.2.23 ,显然它包含了自2.2.24版本以来的漏洞。 我做了一个sudo yum update但使用httpd -v检查apache版本后,它仍然报告2.2.23。 yum info httpd也确认版本库版本是2.2.23 有没有办法强制yum更新到最新版本或添加指向最新的apache版本的自定义存储库? 我是一名开发人员,在Linux上我没有太多的经验,所以对于做什么我有点难以理解。 任何提示将不胜感激,thanx!

启用Kerberos时,在本地locking用户的帐户

我正在尝试为一组具有以下特征的机器设置Chefpipe理的帐户: 如果没有本地帐户,则login被阻止。 如果有一个本地帐户与SSH密钥,使用那些进行身份validation是可能的。 如果存在具有本地密码的本地帐户,则使用该密码进行validation。 如果有本地帐户没有本地密码,则使用Kerberos。 我有这么多的工作。 但我想要做的最后一件事是通过本地locking密码(例如使用usermod -L )来禁用帐户login。 问题是,当本地密码被locking,PAM正在回落到Kerberos …并允许访问。 有没有办法configurationPAM,以便如果本地密码存在,但它被locking,它不会尝试Kerberos? 到目前为止,我能想到的最好的办法是通过用不可猜测的东西来打破本地密码来locking帐户。 但是,这有点粗糙,如果有人不“遵循程序”,打得不好

在3/5 raid6的第一个RX队列上丢弃了100%数据包使用intel igb的iSCSI NAS设备(已解决)

编辑 :问题已解决。 有问题的队列已被用于stream量控制包。 为什么igb驱动程序传播FC数据包,让他们丢弃(和计数)是另一个问题。 但是解决scheme是,没有什么东西丢掉了数据丢失的方式。 非常感谢你,syneticon-dj,你的dropwatch的指针是黄金! === 原始问题的进一步参考 === 我们有以下情况: 系统:有问题的服务器是一个带有4个四核氙气CPU,128GB ECC内存的dell供电,正在运行debian linux。 内核是3.2.26。 有问题的接口是特殊的iSCSI卡,每个接口使用Intel 82576千兆位以太网控制器。 背景:在我们的一台服务器上,很多NAS(Thecus N5200与Thecus XXX)都是使用iSCSI连接至专用的1GB / s介面。 我们有5张卡,每张卡有4个端口。 NAS文件pipe理器直接连接,两者之间没有切换。 两个星期前,我们设法清除了四个NAS文件pipe理器,并使用它们来构build一个使用mdadm的raid6。 通过使用LVM,我们可以dynamic创build,缩小和/或扩展我们各种项目的存储空间,而无需每隔一段时间search一次所有NAS文件pipe理器的空闲空间。 但是,几乎每一个接口都有很多超限,很多数据包都被丢弃了。 调查显示,networking堆栈的默认设置必须增加。 我用sysctl来调整所有的设置,直到没有超出发生。 不幸的是,用于NAS raid的接口仍然会丢失很多数据包,但只有RX。 经过search(这里,谷歌,metager,英特尔,任何地方,任何地方),我们发现有关intel igb驱动程序的信息有一些问题,一些工作已经完成。 于是我下载了最新版本(igb-4.2.16),用LRO编译模块和单独的队列支持,并安装了新的模块。 所有使用此驱动程序的20(!)接口现在都有8个RxTx队列(未配对)并启用了LRO。 具体的选项是: options igb InterruptThrottleRate=1 RSS=0 QueuePairs=0 LRO=1 irqbalancer很好地分配所有接口的队列,一切都非常出色。 那我为什么要写作呢? 我们有以下奇怪的情况,根本无法解释: NAS raid的五个接口中有三个(我们已经增加了一个备用NAS,并且一旦mdadm完成了它的当前整形,这个raid应该会增长)显示出大量的数据包丢失。 对ethtool的调查现在显示,由于新的多队列驱动程序,每个接口大量使用一个队列,这将是我们猜测的重塑。 但是,三个使用另一个队列与数百万收件包,都被丢弃。 至less表明利用“监视”的调查,这些队列上的包号码与丢弃的包裹相关联。 我们将NAS上的MTU和接口从9000改为1500,但丢包率增加,mdadm性能下降。 因此它看起来不像MTU问题。 而且networking堆栈的内存数量非常大,这也不成问题。 积压足够大(实际上是巨大的),我们完全在海上。 这里有个例子输出: ~ […]

当tcpdump在网桥上运行时,数据包只能被转发

在尝试使用OpenStackdebuggingnetworking问题时遇到了最奇怪的事情。 我正在做虚拟机之间的pingtesting。 如果我在运行nova-network的节点上的网桥接口上做了一个“tcpdump”,ICMP请求数据包只将它发送到目标主机。 如果我停止在该接口上做一个tcpdump,我不再看到请求到达主机。 一般来说,如何/为什么在Linux网桥接口上执行tcpdump会影响数据包是否被转发?

如何获得特定端口(当前)build立的TCP连接的数量?

如何获得特定端口(当前)build立的TCP连接的数量? 我已经设法得到stream量工作的计数器,即对于传出的RTMP。 iptables -N $CHAIN iptables -I OUTPUT -j $CHAIN iptables -A $CHAIN -p tcp –sport 1935 iptables-save 但是现在我需要每个协议的当前(不是计数器)连接的数量 我可以得到总数:netstat -ant | grep ESTABLISHED | wc -l 谁能帮忙? 我不是一个iptables大师。

Tmux和encryption导致重新连接“(不可达)”目录

我正在运行带有encryption主目录(encryptfs)的Ubuntu 13.04服务器。 我打开一个tmux会话,持有我的开发环境(vim等)。 当我断开连接时,我将分离tmux会话,然后断开ssh连接。 后来,当我重新连接,并重新连接tmux会话,我会得到错误,如: fatal: Could not change back to '(unreachable)/*****': No such file or directory 这通常意味着vim(在分离时仍然是打开的)保存到错误的位置,并且不会实际将文件写入到磁盘,而是仅仅到达“不可到达”目录,这似乎是暂时的。 如果我从bash运行“ pwd ”(从重新安装以来没有做其他事情),我得到正确的目录/ home / *** / *** 。 如果我运行'git status',我得到上面的消息(没有这样的文件),如果我从'vim'中input' pwd ',就会得到“ (无法访问)/ *** ”。 暂时的解决办法是运行' cd。 '之前运行任何其他命令,它允许git / vim / etc实际上看到目录。 这是非常不方便的,因为我经常在tmux中打开很多面板/屏幕,我必须运行“ cd”。 每次我重新连接时, 最重要的是,我必须确保vim或其他任何东西,在我断开连接之前closures,否则,如果我不小心,可能会丢失数据。 我看到另一个线程在某个地方,这归因于在注销时encryption卸载$ HOME ,但没有答复。 这似乎是一个可能的原因,但我不知道从哪里开始。 任何帮助?

SSHlogin:自动转到最后一个目录访问?

在我的多任务期间,有时我会因为某种原因(空闲超时等等)从SSH会话中启动,而我正在处理另一项任务。 当我回到terminal,我会发现自己回到本地,需要SSH回到服务器。 一旦回到服务器,默认情况下,我总是在我的主目录中,并且我需要回到我最后的目录(如果我能记得的话)以继续工作。 是否有可能自动返回到我login时工作的最后一个目录? 我想一个自制解决scheme将别名cd来改变目录,但也保存该目录到一些环境variables,然后切换到我的.bash_profile目录。 但是在Linux中是否有这样的function呢?