Articles of linux

如何通过降级的软件RAID 1来让RHEL / CentOS / SL 7正常启动

我build立了一个新的服务器(我的第一个Linux版本)。 我在一台旧机器上安装了一对160 GB的空白SATA硬盘(一个Seagate和一个WDC,但是LBA扇区的数量完全相同),并着手将Scientific Linux 7.0(更名为RHEL)安装在RAID 1(软件镜像)configuration。 第一次打嗝是我无法弄清楚如何让SL / RHEL安装程序(Anaconda)为RAID1设置两个驱动器。 所以我从PartedMagic光盘启动,并用它来进行分区。 我将这两个驱动器分隔开来。 每个驱动器都有一个用于安装在/ RAID1 + ext4的大分区,安装在/safe一个用于RAID1 + ext3的小(当前未使用的)分区以及一个3GB的Linux交换分区。 我使用fdisk将每个驱动器上的RAID分区的types更改为FD,而使用mdadm来构buildRAIDarrays: mdadm –create –verbose /dev/md0 –raid-devices=2 –level=1 /dev/sda1 /dev/sdb1 mdadm –create –verbose /dev/md1 –raid-devices=2 –level=1 /dev/sda2 /dev/sdb2 然后我closures,启动SL DVD,并再次尝试安装。 这次安装程序识别RAID1arrays,分别格式化为ext4和ext3,并顺利安装。 在这一点上,一切似乎没问题。 我把它关掉了,再次启动了,它启动正常。 到现在为止还挺好。 于是我testing了RAID1的function:我closures了电脑,取下了其中一个驱动器,并尝试启动它。 我期待它显示有关RAIDarrays降级的错误消息,然后进入正常的login屏幕。 但它没有工作。 相反,我得到了: Welcome to emergency mode! After logging in, type "journalctl -xb" to […]

为什么linux桥显示一个qemu vm的2个mac地址?

我是qemunetworking的新手,对以下情况非常困惑。 我推出了5台虚拟机。 每个通过一个水龙头设备连接到br0。 我也有一个dnsmasq侦听br0的DHCP。 问题是根据我指定的dhcp_host文件,dnsmasq不会将ip分配给VM。 dhcp_host文件具有如下项目:mac:ip。 我想,当我把mac地址在qemu中,dnsmasq应该从dhcp_host文件中查找ip。 但事实并非如此。 相反,它随机发出ip。 现在,当我检查与brctl。 它显示10个mac地址,而不是5! 我在这里search了很多来自谷歌的qemunetworking教程。 他们都没有回答我的问题。 有人可以解释一下情况吗?或者给我一些指点? 谢谢! $ brctl show 网桥名称bridge id STP使能的接口 br0 8000.1ed7c974ed93 no tap0 TAP1 TAP2 TAP3 tap4 $ brctl showmacs br0 端口没有mac地址是本地的? 老化定时器 1 02:2f:ef:29:be:36 no 1.73 1 1e:d7:c9:74:ed:93是0.00 4 22:00:f4:a8:89:8a no 3.99 5 5a:e6:2a:d6:a0:50是0.00 3 5e:18:64:12:3d:ec是0.00 3 72:22:53:51:f4:fa no 3.08 4 7a:e4:22:89:59:9a是0.00 […]

java程序在达到xmx之前内存不足

Redhat CentOS 6.4只有几个进程运行,使用大约3GB RAM(系统有12GB可用)。 其中一个进程是WSO2ESB服务器(java),我们从这些参数开始: -Xms2048m -Xmx3072m 一段时间后,我们得到一个OutOfMemoryexception,但是java进程(WSO2ESB)进程甚至没有使用它的3GB 。 在jconsole中,你也可以看到正确设置的那些参数(Linux服务器在这一点上有大约9GB的可用RAM) Linux不给我们configuration的3 GB的RAM吗? 在一个完全相同的Windows安装 – Java进程可以使用它的3GB RAM没有任何问题。 jconsole的屏幕截图仅显示了0.3到1.0 GB之间的堆内存使用情况。 在OutOfMemoryexception的时刻堆内存是在0.5GB,但进程将有3GB的工作,但它不… 编辑:添加java进程的日志: java.lang.OutOfMemoryError: unable to create new native thread EDIT2:添加了免费的-m输出:

了解zpool状态输出

运行zpool status命令后,我很难理解输出: NAME STATE READ WRITE CKSUM tank ONLINE 6 0 0 raidz2-0 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c3t1d0 ONLINE 0 0 0 c3t2d0 ONLINE 0 0 0 c3t3d0 ONLINE 0 0 0 我在READ旁边看到一个6,我认为这是I / O错误,试图从坦克中读取。 我不明白哪个驱动器在这里是错误的取代。 这有什么值得警惕的吗? 我运行了一个SMARTtesting,没有一个硬盘报告有故障。 我不确定如何处理这个问题。

在Redhat Linux下无法识别的进程

在服务器上发出ps ax命令后,我看到以下进程,我无法识别。 谷歌search他们没有任何用处。 有人知道这是什么,或者我会如何跟踪他们? 该系统是在VMware上运行的虚拟机。 我不确定什么版本,因为我不控制的基础设施,但我问是否有任何虚拟机快照或备份正在发生,他们说不。 系统是红帽企业Linux服务器版本5.4(Tikanga)内核是2.6.18-164.el5 系统已重新启动,但这些进程仍然存在。 7158 ? S< 0:00 [WRITE_COW_THR0] 7159 ? S< 0:00 [ISSUE_WR_THR0] 7160 ? S< 0:00 [SNAP_R_THR0] 7161 ? S< 0:00 [WRITE_COW_THR1] 7162 ? S< 0:00 [ISSUE_WR_THR1] 7163 ? S< 0:00 [SNAP_R_THR1] 7164 ? S< 0:00 [WRITE_COW_THR2] 7165 ? S< 0:00 [ISSUE_WR_THR2] 7166 ? S< 0:00 [SNAP_R_THR2] 7167 ? […]

一个软件RAID10的磁盘被重新分区。 该怎么办?

我在一台机器上有一个软件arrays root@c ~# mdadm –query –detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Mon Mar 17 10:22:38 2014 Raid Level : raid10 Array Size : 976772096 (931.52 GiB 1000.21 GB) Used Dev Size : 488386048 (465.76 GiB 500.11 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock […]

Nginx同时使用writev()和sendfile()

我注意到,当提供图像时,Nginx使用writev()从Firefox等浏览器调用时发送图像,但使用sendfile()在wgetting图像时发送图像。 任何想法为什么它使用两个? 我有'发送文件; '在configuration中。 任何地方都找不到好的答案。 谢谢!

为什么sshd参与PAM仍然?

背景/行为是:如果您通过ssh打开并且GSSAPI / Kerberos成功,并且您在/ etc / passwd中拥有本地用户,则您可以根据以下PAMconfiguration正确login。 所有好的。 但是,如果您在/ etc / passwd中没有本地用户,但是您可以获得主机/ XXXXXX服务票证(GSSAPI有效),则sshdlogin失败,永远不会收到SecurID提示(我们的pam radius指向SecurID)。 我明白那个。 由于服务器“authentication”了用户,并且pam_unix 知道用户不在/ etc / passwd中,所以不需要使用任何其他authentication方法。 但是,我的问题是,为什么我第一次运行kdestroy(故意有GSSAPI失败),并且仍然不存在于/ etc / passwd中,我是否突然得到一个Securid提示符(即PAM被占用)? 运行sshddebugging显示:推迟键盘交互式无效用户“用户”。 首先,它为什么不简单地失败? 其次为什么延迟? pam_radius是“必需的”,而不是“必需的”。 我也希望也只是失败,因为即使我没有通过身份validation,我永远不会超过pam_unix。 文件: 的/ etc / SSH / sshd_config中 …. ChallengeResponseAuthentication yes GSSAPIAuthentication yes HostbasedAuthentication no KerberosAuthentication no PasswordAuthentication no PubkeyAuthentication yes RhostsRSAAuthentication no RSAAuthentication yes UsePAM yes …. […]

限制pipe理员用户的postqueue访问权限

我在Gentoo上运行postfix作为邮件服务器守护进程。 在调查某些队列堆积的过程中,我发现/usr/sbin/postqueue可以被系统上的所有用户执行,它可以为所有用户愉快地输出当前邮件队列(带-q )。 它看起来像是或多或less的devise: postdrop和postqueue是set-gid与组postdrop二进制文件。 -rwx–s–x 1 root postdrop 15K Apr 10 23:49 postdrop -rwx–s–x 1 root postdrop 15K Apr 10 23:49 postqueue 他们也可以执行other , postfix似乎需要( postfix check输出): postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postqueue 我可能错过了一些内部工作,但据我所见,普通用户不应该有权访问队列,特别是因为在这个configuration中,所有的地址和域都是虚拟的(通过数据库)。 如果用户定期轮询postqueue ,他可以组装一个<from>,<to>地址对的列表( postcat被限制,用户不能访问邮件的内容)。 exim有一个名为queue_list_requires_admin的configuration选项,但是我找不到像postfix这样的东西。 是否有可能限制队列访问与后缀?

如何在Windows 7上启动特定服务之前复制文件的目录

我有一个Windows 7桌面和运行SSH和Samba服务的Linux服务器。 Windows机器有一个需要与Linux服务器上的副本同步的文件目录。 Windows机器在运行时有一个使用这组文件的服务,我需要在运行此服务之前复制这些文件,以确保复制文件的完整性。 这些文件很大(数百MB),理想情况下我想使用rsync来使这个过程高效。 我相信我可以用cygwin做到这一点。 那么有没有办法做一个脚本(我猜是一个BAT文件)作为一个特定的用户运行,但在另一个特定的服务(例如在机器打开,但联网build立之前)和rsyncs数据服务器的桑巴共享或(更好)通过SSH。 在Linux环境中这将是相当容易的,但我不是Windows专家。