Articles of linux

PS返回%cpu和cputime不合理的高值

Nagios在我们的一台服务器上发出警报,说我们有一个失控的进程。 login并运行top并不会显示任何错误发生,但是当我查看ps的输出时,我看到一些奇怪的东西: oxygen@mail-1:~$ ps -e -o %cpu,comm,cputime –sort %cpu | tail 0.2 amavisd 00:00:11 0.2 zmlogger 00:00:54 0.2 zmstat-allprocs 03:44:19 0.2 amavisd 00:00:07 0.2 amavisd 00:00:14 0.3 amavisd 00:00:08 0.3 top 00:00:05 0.5 amavisd 00:00:04 8.1 mysqld 3-23:07:17 7413 java 1184016091-02:47:13 %cpu和cputime看起来不合理。 任何想法,为什么这可能是这样的? oxygen@mail-1:~$ ps –version procps version 3.2.8 oxygen@mail-1:~$ uname -a Linux mail-1 2.6.32-35-server […]

在Force10 S50N交换机的一个物理接口上是否可以放置一个标记的VLAN?

我有一个IPMI共享以太网端口和第一个NIC的服务器。 他们有4-1GbE nics。 我想通过LACP绑定nics,但仍然只能在第一个物理端口上通过标记vlan访问IPMI,因为IPMI只在第一个物理端口上共享。 我也在考虑为我的机架购买Force10 S50N交换机。 但是,我不确定这个设置是否可以用FTOS来实现。 FTR,我已经设法用两个linux虚拟机来完成这个设置。 我在每一端都绑定了以太网设备。 然后我在绑定链路的一个接口上添加了一个vlan,并且能够通过两个networking保持ping和ssh连接。 这些机器是这样连接起来的: Mach A Mach B eth2<—–>eth2 eth3<—–>eth3 以下是我用来设置连接的命令: 以马赫A为根: # modprobe bonding mode=4 # mode=4 means 802.3ad or LACP bonding # ip link add bond0 type bond # start setting up bonded link # ip link set eth2 master bond0 # ip link set eth3 […]

IPv6前缀pipe理

所以,我的SiXXS的POP似乎陷入困境,我正在考虑转向HE。 这个想法是连接到HE,改变radvd设置和…许多人认为: UFW,特别是在笔记本电脑中,它只允许从某些RFC1918地址和我的全球IPV6地址访问一些开发服务 我的服务器有固定的IPv6地址,以便于DNS设置 某些软件需要对设置中的“本地”地址提供某种types的引用(如squid acls或libvirtnetworking) 等等 所以我的问题是:处理这个问题的最好方法是什么?假设明天我需要更换我的隧道代理,或者出于任何原因需要更改我的前缀并使用另一个提供程序作为备份,我是否真的需要审查我所有的设置? 我能想到的唯一的解决scheme是我不喜欢的ULA和NAT(或ULA加全球地址,但我认为这个设置是不推荐的) (如果我理解正确的话,一个可能的解决scheme是移动IPv6,但是现在真的是一个select吗?有多less提供者使用它?) 总结:我有什么select来简化更改networkingIPv6前缀的pipe理任务? UPDATE 非常感谢你的回答,但是我认为我留下了一些对这个问题很重要的事情: https : //en.wikipedia.org/wiki/IPv6_address#Default_address_selection给出了一个select偏好表,如果你有多个地址。 由于SiXXS和HE都使用2001 ::前缀,这意味着(如果我正确读取表),全局地址将始终被选中,而不是ULA。 所以,如果我设置鱿鱼来限制基于ULA的访问,它将无法工作,因为所有的客户端将标识自己的全球地址。 还有一个关于同一个问题的问题,但是使用ULA和全局地址的答案是可行的,因为公共前缀是2000 ::在这种情况下。 我是对的?还是我错在地址偏好?

自定义Centos5 AMI内核恐慌

我试图在亚马逊上构build一个Custom Centos 5 AMI,并在启动时引起内核恐慌。 我花了差不多一个星期的时间,我无法弄清楚什么是错的。 我遵循以下配方: http : //blog.maclawran.ca/gotchas-porting-centos-58-from-virtualbox-to 我也尝试了其他类似的食谱在互联网上有相同的结果。 我从上面的配方中唯一改变的是: 使用最新的Centos ISO / repos(5.9) 有一个单独的分区(/ boot inside /) 根分区使用ext4而不是ext3 步骤非常多,如下所示: 在Virtual Box上安装Centos 将.vdi磁盘转换为.img 将磁盘映像上传到AWS 将图像复制到卷 对initrd,fstab,grub.conf进行一些更改 快照卷 创buildAMI 启动新的实例 EC2系统日志 Xen Minimal OS! start_info: 0xac4000(VA) nr_pages: 0x26700 shared_inf: 0xbfa11000(MA) pt_base: 0xac7000(VA) nr_pt_frames: 0x9 mfn_list: 0x990000(VA) mod_start: 0x0(VA) mod_len: 0 flags: 0x0 cmd_line: root=/dev/sda1 ro […]

mdadm:越来越多的RAID0arrays奇怪

我已经使用Rackspace的CloudBlockStorage作为设备在3台Rackspace CloudServers上使用mdadm创build了3个RAID0arrays。 每个arrays都有自己的一组CBS卷。 RS-CBS的驱动器上限为1TB,我需要更大的存储空间。 其中一个服务器用于数据存储,第二个服务器是该服务器的实时镜像,第三个是夜间快照。 我使用这个命令在每个服务器上创build了这个数组: mdadm –create /dev/md0 –level=0 –raid-devices=3 /dev/xvdb1 /dev/xvdd1 /dev/xvde1 到了增长arrays的时候,由于这是我第一次增长arrays,所以我开始使用最不关键的服务器:快照服务器。 我添加了一个新的卷,并有一个小小的摆弄,提出了这个命令: mdadm –grow /dev/md0 –raid-devices=4 –add /dev/xvdf1 根据mdadm手册页,它说你无法增长一个RAID0,所以mdadm把它转换成RAID4,增长,然后转换回来。 (它永远不会变回,但这是另一个问题)。 该arrays重塑,但大小永远不会改变。 我的假设是,新的驱动器刚刚成为arrays的奇偶校验驱动器。 所以为了得到我需要的空间,我增加了一个空间: mdadm –grow /dev/md0 –raid-devices=5 –add /dev/xvdg1 这个重塑并给了我额外的500GB,我希望所以我做resize2fs /dev/md0 ,我很好去; 2TB的空间。 所以这就是奇怪发生的地方。 我切换到在镜像服务器上增长arrays。 从前面的步骤知道,我将需要添加两个卷来获得我需要的额外空间,我使用这个命令: mdadm –grow /dev/md0 –raid-devices=5 –add /dev/xvdf1 /dev/xvdg1 它重塑和东西看起来不错,但是当我做resize2fs /dev/md0后面跟着一个df -hal我发现它确实增长了,并报告了2.5TB的空间,而不是我期待的2.0TB。 就好像它没有创build奇偶校验驱动器,我假设它从第一次运行,并使用arrays的所有可用空间。 有一点看起来不一样,就是在镜像服务器上进行mdadm -D /dev/md0之后, mdadm […]

Linux-权限被拒绝?

我正在安装Neo4j服务器作为一个Linux服务,但是当我安装它,我得到以下消息: /sbin/insserv: Permission denied 这是什么? 我该怎么办? 我用sudo运行所有的东西。 更新 – scheme : 我第一次正确安装了它,但后来我把neo4j目录移到了不同​​的位置。 neo4j服务现在不被识别。 我从/etc/init.d删除了neo4j-service,然后运行update-rc.d -f neo4j-service remove 当我重新安装它说/sbin/insserv没有这样的目录,所以我GOOGLE了,做到这一点: ln -s /usr/lib/insserv/insserv /sbin/insserv 现在当我重新安装它 – 它说/sbin/insserv: Permission denied 使用Ubuntu 。 etc / sudoers : # # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ […]

多个Nginx服务器是否使用ip_hash指令将相同的IP地址与相同的后端进行负载均衡?

我有两个单独的Nginx机器。 该域使用循环法DNS,并且有两个Alogging,两个前端Nginx服务器各有一个logging。 两个Nginx服务器都使用ip_hash指令和代理请求到相同的后端服务器。 到第一个Nginx服务器的IP地址是否总会被路由到与其他Nginx服务器的IP地址相同的后端服务器? 这可能有帮助: nginx使用ip_hash粘性会话的IP是什么?

segfaults没有login到/ var / log / messages

我使用的是红帽企业Linux服务器版本5.在这种情况下,当用户进程由于分段错误而崩溃时,它不会被logging在/ var / log / messages中。 即使是dmesg也没有显示任何与此相关的消息。 在另一个发行版(Cent OS 5)中,每当我的用户进程崩溃时,我都会在/ var / log / messages中看到segfaults消息,并显示段错误。 是否有任何启用的设置,以便它将段错误logging到/ var / log / messages中。 我交叉检查了两个系统的/etc/syslog.conf。 两者都是相同的,甚至是/ etc / sysconfig / syslog文件。 现在检查内核源代码arch / x86 / mm / fault.c,只在2.6.23及之后发现segfault的打印错误信息为/ var / log / messages。 因为RHEL5.4使用2.6.18内核,所以它不能将信息login到系统日志中。

Hyper-V 2012上的自动Linux虚拟机

我有要求在未来几个月内为我们的客户创build大量的linux虚拟机(我们运行托pipe基础架构),并且在自动化方面存在一个问题。 这是我需要它的工作方式: 用户访问他们的网页并创build一个虚拟机。 VM是使用唯一的IP和名称创build的 用户通过SSHlogin 我非常了解Hyper-V,可以使用PowerShell,并且是一名C#程序员,所以事情的发展方面是照顾的。 我也足够了解Linux至less能胜任:我已经使用它多年,但没有做任何事情企业级的。 所有这一切都可以通过手动过程轻松完成,但是我需要能够编写脚本或编程来实现自动化,因为可能会创build数百个脚本,但是我不知道如何实现。 我的第一个想法是有一个随机生成的名称和IP已经创build的数据库,但我不知道如何让一个Linux虚拟机启动,从数据库中抓取一个…我想一个Kickstart脚本将照顾但我不知道该怎么做。 这就是我脑海中弹起的东西: 创build一个std linux版本。 – 容易做到 有人点击“创build虚拟机”,我从数据库中提取一个名称和IP,并将其写入kickstart脚本。 – 容易做到 然后,我可以打开模板VHDX文件并复制到脚本中,然后保存它。 – 不确定如果可能的话 用户启动新的虚拟机,kickstart脚本给它分配的名字和IP。 我的问题是,我不知道如何打开一个VHDX文件,并插入一个kickstart脚本…不能弄明白。 我到达这里,这个解决scheme可能会远离我…我更习惯于创buildWindows虚拟机与脚本等,我更熟悉…任何帮助,将不胜感激。 谢谢 米克

如何备份和恢复从许多思科路由器和交换机的configuration从Linux?

我正在寻找一种备份,保存,版本和恢复思科networking设备configuration的方法。 我需要能够在许多路由器和交换机上自动获取和压入configuration文件。 我正在寻找某种Linux的替代Orion所以我可以: 更改时自动从设备获取configuration(由系统日志触发) 保存configuration的每个版本 在单个设备上推送configuration 以一种脚本方式在一堆设备上推送configuration 所以我看了看似乎是一个很好的解决scheme,我没有发现任何符合这些标准的东西。 很奇怪,没有为这些需求而构build的Linux事物。 这是我发现的: Rancid是一个很好的脚本,可以获取configuration并将每个版本保存在CVS或SVN存储库中 Syslog-ng可以帮助我告诉Rancid在syslog发送时再次检查设备的configuration CVS / SVN / Git /任何可以实现版本和提供不错的差异 我可以用clogin(Rancid)推configuration,但是这根本不好 我可以推TFTP的configuration,但我不得不脚本(主要是大规模部署)。 我是否缺less一个提供所需function的工具? 奇怪的是它在Linux上不存在。 谢谢你的帮助 :)