Articles of linux

Rundeck 2.5.1 – 在本地执行的作业上没有匹配的节点

我正在使用Rundeck v2.5.1,我试图configuration一个在本地执行的作业。 作业运行一个内嵌脚本,该脚本运行另一个脚本。 当我运行作业(以pipe理员身份)时,似乎Rundeck不运行任何内联脚本。 这是来自工作的输出: com.dtolabs.rundeck.core.NodesetEmptyException: No matched nodes: MultiNodeSelector{nodenames=[localhost]} at com.dtolabs.rundeck.core.execution.workflow.NodeFirstWorkflowStrategy.validateNodeSet(NodeFirstWorkflowStrategy.java:341) at com.dtolabs.rundeck.core.execution.workflow.NodeFirstWorkflowStrategy.executeWorkflowImpl(NodeFirstWorkflowStrategy.java:84) at com.dtolabs.rundeck.core.execution.workflow.BaseWorkflowStrategy.executeWorkflow(BaseWorkflowStrategy.java:182) at com.dtolabs.rundeck.core.execution.WorkflowExecutionServiceThread.run(WorkflowExecutionServiceThread.java:55) Exception: class com.dtolabs.rundeck.core.NodesetEmptyException: No matched nodes: MultiNodeSelector{nodenames=[localhost]} No matched nodes: MultiNodeSelector{nodenames=[localhost]} 另外,这里是admin.aclpolicy(/etc/rundeck/admin.aclpolicy) description: Admin, all access. context: project: '.*' # all projects for: resource: – allow: '*' # allow read/create all kinds adhoc: – allow: '*' # […]

Windows Azure:重新安装Linux而不重新创build虚拟机

我在Windows Azure上的Linux VM上安装了一些东西,现在我又需要一个干净的服务器了,是否有任何机会轻易重新安装(再次干净的Linux),而不必重新创build虚拟机,云和端点?

如何确定执行systemd manager作业的Linux用户/组?

我试图确定哪个Linux用户/组运行systemd作业,以便我可以相应地设置D-Bus权限。 当我这样做: sudo systemctl start myservice 这最终调用了一个可执行文件,它试图在D-Bus上注册自己,但是为了工作,我需要在D-Busconfiguration中提供用户权限。 我怎么知道哪个Linux用户/组与上面有关联?

服务器不发送ICMP回应答复

我在CentOS 6.6机器上出现了一个奇怪的问题。 它是一台运行KVM的服务器,以及一些使用网桥接口的访客虚拟机。 基本上,我的问题是这个:这台主机上的虚拟机根本没有networking连接问题,我可以ssh给他们,并ping他们就好了。 但是,主机几乎只能与自己的子网(包括在其上运行的虚拟机)和几个交换机上的设备进行通信。 如果我运行tcpdump并尝试从无法与之通信的设备进行ping操作,则可以看到ICMP回显请求进入,但没有回显应答。 我已经检查了所有我能想到的事情:重新启动networking,重新启动服务器,iptables完全是空的,selinuxclosures,icmp_echo_ignore_all = 0,所有路由都正确,并且与同一子网中没有问题的其他服务器相同。 我几乎没有想法,任何帮助将不胜感激! 谢谢,

是否有可能测量每个端口在Linux上使用的带宽?

我想知道是否有一种方法来测量Linux下的tcp / udp端口的带宽? 就是说我search的方法可以告诉,现在tcp / 53需要1MBit / s,tcp / 80现在需要4.5MBit / s。 iperf能够告诉我这个细节,但我的问题是我需要在shell / bash中提取数据供以后使用。

OpenVPN – 阻止客户端到客户端的stream量

我有一个在Debian框上运行的OpenVPN服务器。 我想要做的是阻止连接到该OpenVPN服务器的客户端之间的所有stream量。 服务器的本地IP为10.10.10.1,客户端的IP地址为10.10.10.2-10.10.10.8。 我尝试使用iptables,但似乎客户端之间的stream量永远不会离开tun0,所以我不能阻止它。 我能做什么? 有一些iptables的规则,可以阻止接口内的stream量? (TUN0) 客户端到客户端在server.conf中未被启用,但由于某些原因,用户仍然可以相互ping通并相互通信。

Linux raid10在2个磁盘上

Linux mdadm有一些怪癖,其中之一就是只用两个磁盘构buildraid10。 有一些报告说,它的速度比RAID1更快(两次读取和写入): https://raid.wiki.kernel.org/index.php/Performance http://blog.a2o.si/2014/09/07/linux-software-raid-why-you-should-always-use-raid-10-instead-of-raid-1/ (raid1 vs raid10f2) 两个磁盘上的raid10与raid1一样安全吗? 使用这种解决scheme而不是“适当的”raid1有什么危险?

当本地密码过期时,Kerberos身份validation失败

我使用本地帐户(Linux)的pam_krb5进行AD密码validation。 事情运作良好,用户可以用AD和本地密码进行身份validation。 我有一个问题,但当本地密码过期Kerberos身份validation失败,并提示用户更改其本地密码。 问题是,大多数用户不记得他们的本地密码,到目前为止我的解决方法是暂时禁用本地密码更改实施。 有没有办法让pam_krb5忽略过期的本地密码,或者至lessconfigurationPAM来优先考虑本地的Kerberos密码? 我的研究使我相信这与common-auth有关,我在下面提供了这个: auth required pam_env.so auth sufficient pam_unix2.so auth requisite pam_succeed_if.so user ingroup access_www auth sufficient pam_krb5.so use_first_pass auth required pam_deny.so

从源代码编译软件:如何收集依赖列表?

我想从源代码编译Nginx 1.9.8并将其安装在Ubuntu 14.04服务器上。 然而,这对于任何软件都是如此,我怎么知道为了构build软件我需要在本地系统上安装哪些依赖关系? 假设我想编译Nginx。 我总是可以做aptitude show nginx来获取当前软件包的依赖关系。 另一方面,这可能不是一个正确的列表,因为存储库可能会提供一个旧版本,其依赖关系与我想要编译的新版本不同。 一般来说,如何收集我需要在给定的软件上安装在系统上的依赖列表? 鉴于依赖关系可能会因我提供的编译选项而有所不同,这是“试错”的问题。 也就是说,我应该尝试编译,然后等待第一个错误,看看它有什么抱怨,添加依赖关系,并再次做同样的迭代?

在build立出站TCP连接时,无法绑定到特定的IPv4地址,也不能绑定到parsing为IPv4和IPv6地址的主机名

我花了大概6个小时试图解决这个问题,现在我认为当连接到一个具有IPv6地址的主机名时,CentOS / Linux无法绑定到特定的虚拟IPv4地址。 这是有多个IP地址的服务器上的问题。 我正在使用Centos 6(Linux内核2.6.32-573.12.1.el6.x86_64) 重现这个巨大的: find至less具有29个IPv4公共地址空间和IPv6公共IP的Linux机器。 别名至less有一个额外的IPv4到主接口(eth0或其他)。 在这个例子中,我将30.0.0.1作为机器的主eth0 IPv4地址,而30.0.0.2是绑定到30.0.0.0/29networking上的eth0:2的别名。 find具有IPv4和IPv6地址的主机名。 例如,www.microsoft.com。 telnet -b 30.0.0.2 www.microsoft.com 80 (此testing使用特定的ipv4地址进行出站连接) 尝试主机名的IPv6地址失败后,IPv4请求连接成功,但TCP连接实际上是从主机IP(30.0.0.1)启动的,而不是您想要的IP(30.0.0.2)。 Netstat否则说,但它是错误的。 如果您连接到您拥有的主机名并可以查看其日志,则连接来自主IP(30.0.0.1),而不是您想要的IP(30.0.0.2)。 尝试另一个没有IPv6地址的域,例如: telnet -b 30.0.0.2 serverfault.com 。 有用。 它使你想要的IP连接。 这是一个问题,因为某些程序(如邮件(exim))在发出出站TCP请求时需要使用某些IP,这不一定是主机的IP。 当进行出站TCP连接时,机器上的某些客户端/程序依靠ACL或反向DNS来正确匹配。 所以,如果其他人注意到他们的程序无法绑定到正确的接口进行传出连接的同一个奇怪的问题,这可能是为什么。 此问题仅影响IPv4连接。 IPv6连接正确地绑定到您在机器上具有的任何传出IP。 这对于telnet来说不是问题。 我也使用我的邮件服务器(exim)testing了这个问题,并得到了类似的结果。 如果目标主机名具有IPv6地址,则它将从错误的IP进行IPv4连接。 也许有人有这个奇怪的问题的解决scheme,但在这个时候,我认为这可能是一个Linuxnetworking的错误。 Ps-如果有人想知道如果主机名parsing为IPv6地址,为什么不build立IPv6连接?有时IPv6地址closures或者连接无法build立,那么它将恢复到它的IPv4地址。