Articles of linux

更换SATA控制器,软件RAID(mdadm)停止启动:grub rescue>没有这样的磁盘

我有一个相对较旧的服务器机器,在主板上没有SATA端口(Dell Precision Workstaion 650)。 还有一个廉价的FakeRAID控制器(威盛VT6421芯片组)和两个连接到控制器的希捷3TB硬盘(ST3000DM001)。 控制器configuration为使用条带模式(而不是RAID)的驱动器:我基本上使用它作为SATA控制器,而不是RAID控制器。 我可以在这个系统上安装一个软件(mdadm)RAID。 两个物理驱动器中的每一个分区如下: Number Start (sector) End (sector) Size Code Name 1 2048 4095 1024.0 KiB EF02 BIOS boot partition 2 4096 3186687 1.5 GiB EF00 EFI System 3 3186688 5856337919 2.7 TiB FD00 Linux RAID 4 5856337920 5860532223 2.0 GiB 8200 Linux swap 所以有: 每个驱动器开始时1MiB的未分配空闲空间(如GRUB对于传统BIOS上的GPT驱动器所要求的) 分区#1(1MiB):GRUB的BIOS启动分区 分区#2(1.5GiB)用于/ boot => […]

docker工人:客户端比服务器更新

免责声明:我知道,有几个问题处理这个问题(例如“ 较新的Docker客户端与较旧的Docker主机 ”或“ 来自守护进程的错误响应:客户端比服务器新 ”)。 但是他们中的任何一个都不是针对完整的复杂性,我没有处理boot2docker。 情况 我有一个客户端计算机(我的笔记本电脑)和四个docker守护程序(1×本地,3×远程在不同的服务器上)的设置。 当我尝试pipe理一个远程docker守护进程时,我经常收到如下消息: Error response from daemon: client is newer than server (client API version: X, server API version: Y) (其中X > Y且通常|XY| ≤ 0.3 ;例如X = 1.21, Y = 1.19 ) 在大多数情况下,原因是,我的客户端计算机有一个相当先进的系统,而服务器通常保持旧版本,不应该经常无法更新。 另外,如果我总是更新服务器,我将不得不将所有三台服务器更新到一起,而使用服务器的其他人又必须更新其客户端。 (虽然每个服务器的协作者组是不同的) 题 有什么方法可以设置我的客户端,它可以与不同的旧API版本进行通信? (为什么docker项目至less在小版本中不能提供某种向后兼容?)

如何正确处理在服务脚本中删除pid.file

我正在尝试编写应用程序的服务脚本。 所以我可以像这样控制它: ./myscript.sh start|stop|status 启动pid.file与进程id创build,并基于它我可以检查状态和停止进程。 在停止命令我删除pid.file – 没关系。 但是,如果应用程序exception崩溃 – 关机等, pid.file不能删除,我需要手动删除它。 如何正确处理脚本中的这种exception情况?

IP表,可以限制每分钟的请求和超时IP吗?

我试图build立一个防火墙,限制每个IP 3个连接,并且如果在一分钟内> 30次连接尝试,也禁止IP一小时。 这仅适用于端口80。 这是所有可能的iptables? 我也使用fail2ban。 到目前为止,我只使用以下方法限制每个IP的连接 iptables -A INPUT -p tcp –syn –dport 80 -m connlimit –connlimit-above 15 –connlimit-mask 32 -j REJECT –reject-with tcp-reset 任何想法,我模块,我需要做到这一点? 这是我目前的规则 -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N fail2ban-ssh -A INPUT -p tcp -m multiport –dports 22 -j fail2ban-ssh -A INPUT -p tcp -m multiport –dports […]

创build一个Web用户

我在Arch Linux上运行Apache 2.4.8 ,但这并不重要。 我想创build一个致力于Webpipe理的用户。 我创build了一个用户,一个组,并将用户添加到组中。 我怎样才能添加visudo行,让他控制基于Web的服务? 我拥有正确设置的Web根的所有权,但是我需要组“ web ”以允许使用“ service.httpd ”,“ apachectl ”和其他Web程序。 我有: %web ALL=(ALL) /usr/bin/httpd

Linux:允许用户代表任何其他用户执行特定的命令

我试图find一种方法来允许用户john代表另一个用户peter执行一个命令(说回声),而不会提示input密码。 我发现一个线程,我认为将是我的问题的答案: john ALL = (ALL) NOPASSWD: /bin/echo 不幸的是,这不是我想要的。 该命令以peter执行echo命令,但在john的上下文中执行。 这意味着主目录仍然是john目录。 作为用户john ,如果我运行:“ sudo -u peter echo ~ ”,响应是: /home/john 。 我希望它是/home/peter 。 我期待的行为是由su命令提供的。 作为根,如果我这样做: su peter -c "echo ~" ,我得到/home/peter 。 这个问题是,我如何得到su的行为,而不是根,没有提示input密码?

将受信任的根证书添加到服务器cent os

我尝试在我的操作系统中安装根证书。 我做了以下 启用dynamicCAconfigurationfunction:update-ca-trust force-enable 将它作为新文件添加到/ etc / pki / ca-trust / source / anchors / cp foo.crt / etc / pki / ca-trust / source / anchors / 使用命令:update-ca-trust extract然后我运行下面的命令来validation证书。 openssl s_client -connect my_AD_server_IP:636 -CApath / etc / ssl / certs Bur获取下面的错误(这是错误的一部分) validation返回码:20(无法获得本地签发人证书)

Linux显示错误的磁盘空间,du -h -x / | sorting有不同的空间

如果我input: df -h 它显示我使用了12G。 但是如果我使用这个命令: du -h -x / | sort -hr >> /home/log_size.txt 这会给我: 如果我总结/ usr + / var + / root,这不会给我12G左右…所以我在哪里可以find12G中使用的其他文件?

在md RAID6重build期间,一个磁盘比其他磁盘访问更多

我正在重build一个8驱动器的RAID6驱动器(使用'md'Linux软件RAID),并且已经注意到它似乎没有这么快,可能是因为其中一个驱动器被发送两次其他许多IOPS: Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 155.00 77252.00 0.00 77252 0 sdb 153.00 76736.00 0.00 76736 0 sdc 154.00 77248.00 0.00 77248 0 sde 154.00 77248.00 0.00 77248 0 sdf 164.00 77288.00 0.00 77288 0 sdd 154.00 77248.00 0.00 77248 0 sdg 287.00 83160.00 0.00 83160 0 sdh 146.00 0.00 74240.00 0 74240 […]

如何设置VLAN PCP值?

我正在Linux机器上使用Intel 82599ES万兆适配器。我在交换机上configuration了Vlan和优先级。 我读过这个http://open-lldp.org/dcb_overview 。 当DCB在networking接口上运行时,skb_priority被映射到在VLAN标记中变成PCP的用户优先级值。 我已经设置了vlan接口并使用vconfig_set_egress_map eth224.150 0 5命令来进行映射。 但仍然当我捕捉帧,我看到PCP值为0. 捕获帧中的Vlan标记。 可能是什么问题呢?