Articles of linux

与多个NFS在同一台服务器上安装的木偶

我在同一台服务器上有几个NFS挂载点,但有不同的目录。 例如: xxxx:/stats /data/stats xxxx:/scratch /data/scratch xxxx:/ops /data/ops 但是,当我尝试运行木偶,它添加以下到我的fstab。 (错误的安装分配) xxxx:/scratch /data/stats nfs defaults,nodev,nosharecache 0 0 xxxx:/scratch /data/ops nfs defaults,nodev,nosharecache 0 0 xxxx:/scratch /data/scratch nfs defaults,nodev,nosharecache 0 0 它使用所有安装分区上的最后一个安装选项。 所以我做了一些研究,发现了以下的错误。 https://tickets.puppetlabs.com/browse/DOCUMENT-242 然后添加nosharecache选项,但仍然没有运气。 这是我的木偶代码 class profile::mounts::stats { # Hiera lookups $location = hiera('profile::mounts::stats::location') $location2 = hiera('profile::mounts::stats::location2') tag 'new_mount' file { '/data/stats': ensure => directory, owner => […]

Postfix 3.2.0 – 发送到所有MXlogging

首先,如果我没有在这个初始职位中列出所有的相关信息,我们表示歉意。 请让我知道,如果我错过了什么。 我目前正在运行Postfix 3.2.0,并有与MXlogging和防守消息相关的问题。 我已经确定的是,如果我们的服务器试图发送给一个域有一个MXlogging,没有返回任何响应,这个消息是被拒绝的。 每次postfix尝试重新传送此邮件时,它都使用相同的最低优先级MXlogging。 我在我们的邮件队列中find了被推迟的例子,其原因是“未知的邮件传输错误”。 当我尝试远程login到他们的域的MXlogging时,他们的最低值MX是不可联系的,但其他的是。 我们可以看到没有任何stream量试图从后缀到其他MXlogging,每次只有最低的值。 我知道Postfix首先尝试最低值,然后在推迟邮件之前尝试使用所有其他MXlogging应该是标准做法。 谁能告诉为什么这不适合我? 我将包括我认为在下面相关的任何postconf设置,请告诉我,如果您需要更多的信息; ignore_mx_lookup_error = no smtp_defer_if_no_mx_address_found = no smtp_mx_address_limit = 20 smtp_mx_session_limit = 5 smtp_skip_5xx_greeting = yes smtp_skip_quit_response = yes

如何在Unix服务器上安装Node.js和NPM,以便用户不需要sudo来安装或读取全局包?

这真的是非常罕见的情况,我无法在任何地方find答案吗? 无论如何。 我在DigitalOcean上有一个Ubuntu VM服务器,我正在这台服务器上运行Jenkins,以构build,testing和本地部署一个Web应用程序(主要是将Web应用程序目录复制到其他位置并重新启动运行它的systemctl服务)。 问题是jenkins在系统中生成的用户(你不能用btwlogin),不知何故弄乱了节点模块目录。 它被安装在jenkins主文件夹/var/lib/jenkins/ ,执行npm install (尽pipe没有-g选项),而不是从应用程序内部生成部署目录和包parsing,无法parsing安装在jenkins主目录中的模块(尽pipe由jenkins运行,所以jenkins用户)。 我怀疑解决办法是允许以某种方式pipe理节点安装,这样每个用户都可以安装和需要全局模块而不需要使用sudo ,但是到目前为止,我查找的每个解决scheme(nvm,n-install,各种脚本)是单用户,或sudo。 我真的不能对jenkins(或任何其他程序生成的)用户做任何事情。 那么这种情况下最好的解决scheme是什么?

dig + trace不会将IP地址映射到主机名

我pipe理四个不同的公共名称服务器。 我注意到,当使用服务器命令行中的dig + trace命令时,其中两个会将IP地址映射到Received线路中的主机名,另外两个则不会。 我怎样才能确保反向映射总是发生? 我不想要的是(使用grep来显示正常的跟踪输出中的问题行): # dig +trace +add any google.com | grep Received ;; Received 508 bytes from 172.16.2.1#53(172.16.2.1) in 14 ms ;; Received 504 bytes from 199.7.83.42#53(199.7.83.42) in 378 ms ;; Received 164 bytes from 192.26.92.30#53(192.26.92.30) in 193 ms ;; Received 404 bytes from 216.239.36.10#53(216.239.36.10) in 286 ms 我使用Debian Wheezy上的9.8.4-rpz2 + rl005.12-P1这两个不同的名字服务器来获取上面的输出结果。 […]

Shorewall多个传出的IP分配

我已经安装Shorewall完美的VPN服务器。 我为主eth0接口获得了更多的IP,因此服务器接受来自任何xxxx / 25公有IP的VPN连接。 但是,问题在于,每个连接(来自任何IP)都会为传出stream量获取一个主IP。 问题是我如何划分我的tap接口(VPN正在使用)并将每4个(例如)本地IP分配给下一个公共IP? 以下是我添加的Shorewall masq行,但没有成功: eth0:xxx3 tap:192.168.30.12-192.168.30.15 eth0:xxx4 tap:192.168.30.16-192.168.30.19 eth0:xxx5 tap:192.168.30.20-192.168.30.23

使用虚拟机将操作系统安装到外部驱动器,现在不能在裸机上启动

我有一个USB硬盘驱动器。 (该驱动器的USB连接器实际上是超级片状的,如果您用力过度呼吸,则断开连接,但我认为这不是问题所在)。 我有一台没有DVD驱动器的笔记本电脑,只有一个USB端口。 (实际上,它有更多的USB端口,但它们似乎不起作用,嗯,为什么一切都坏了?来想一想,USB电缆是我的错,但我认为USB端口是这样的。 我试图按照这里的说明,适应我的情况: https : //developers.redhat.com/products/rhel/hello-world/ 。 特别是,我下载了可启动的ISO,在Windows 10(Professional)上的Hyper-V中创build了一个虚拟机,并告诉它从ISO启动并安装到我的外部驱动器。 安装成功,最终我看到一个漂亮的GUI提示我login。然后closures虚拟机并宣布胜利。 原来这还为时过早。 当我尝试从我的USB驱动器启动时,启动过程开始,但它从来没有完成,似乎甚至没有太多。 它宣布了操作系统的名字(特别是红帽企业Linux 7),所以它并没有完全被破坏,但是还有一些错误,我不知道是什么。

FDIRconfiguration将数据包转发到未按预期工作的队列

目前,我正在修改英特尔i40e网卡驱动程序。 我正在尝试使用FDIR将一组指定的UDP数据包通过ethtool转发到NIC的特定队列,这是一件简单的事情: # enable ntuple for both ports ethtool -K ens1f0 ntuple on ethtool -K ens1f1 ntuple on ethtool -U ens1f0 flow-type udp4 src-port 1111 dst-port 319 action 3 ethtool -U ens1f1 flow-type udp4 src-port 1111 dst-port 319 action 3 另外,我已经设置了两个中断的smp_affinity,如下所示: echo 0200 >> /proc/irq/57/smp_affinity echo 0400 >> /proc/irq/88/smp_affinity 为了validation我的configuration,我使用/ proc / interrupts检查了这个行为。 / proc […]

达到最大TIME_WAIT套接字(试过tcp_fin_timeout)

tl; dr:我如何让内核尽可能快速地删除TIME_WAIT /closures套接字? 我不关心数据丢失,因为我没有发送任何。 我正在一个非常孤立的机器上运行一个小testing场景。 我在同一主机上运行两个简单的C程序,应用程序的目的是将客户端套接字连接到服务器套接字并尽可能快地放下。 该应用程序速度足够快导致客户端导致“无法绑定到地址”的套接字(或者说fd)池死锁,其原因似乎是每个可用套接字插槽上的TIME_WAIT 。 我用ss -svalidation了这一点。 为了解决这个问题,我记得在sysctl下设置了三个值。 而这个已经足够解决这个问题,但由于某种原因设置如下: net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 1 不工作了。 这只会使每秒的连接数从20k +下降到大约每分钟4个 。 我可能记得上面的sysctlnetworkingconfiguration中的错误设置,但是我以前每秒钟都会从这台机器中获得大约20k +的连接数。 那么为什么这一下子把我锁到4 /秒呢? 同一台机器,与Arch Linux最小安装对127.0.0.1运行的i7。 我尝试设置的主要信息来源是: 如何减lessTIME_WAIT中的套接字数量? 编辑: 看起来tcp_fin_timeout对系统没有影响。 根据这张图片判断,即使服务器(左上angular)和客户端(右上angular)不再进行任何连接,仍然有数千个连接仍在timewait 。 在10秒的运行结束时,我设法通过了18805个连接,这个连接对于这台机器来说不是一个漏洞(因为服务器和客户端驻留在同一台机器上,所以~36k个TIME_WAITsockets)。 为什么tcp_fin_timeout在一秒之后不会丢弃连接? 这绝对是不尊重我的自定义tcp_fin_timeout操作系统。

如何将glusterfsd进程绑定到接口(ip)?

我尝试将gluster进程绑定到内部(lan)接口失败。 根据文档,我可以在/etc/gluster/glusterd.vol中绑定到IP # cat /etc/glusterfs/glusterd.vol volume management type mgmt/glusterd option working-directory /var/lib/glusterd option transport-type socket,rdma option transport.rdma.bind-address 192.168.1.1 option transport.socket.bind-address 192.168.1.1 option transport.socket.keepalive-time 10 option transport.socket.keepalive-interval 2 option transport.socket.read-fail-log off end-volume 到现在为止还挺好。 但是,重新启动服务后,我看到: # netstat -ltpn | grep gluster tcp 0 0 0.0.0.0:49154 0.0.0.0:* LISTEN 32205/glusterfsd tcp 0 0 192.168.1.1:24007 0.0.0.0:* LISTEN 32002/glusterd glusterd是好的,但glusterfsd肯定不是。 我无法find任何可以绑定gluster […]

如何在TCP Wrapper中使用域拒绝传入的连接?

我正在尝试configurationTCP包装来拒绝来自ftp clietn的访问。 我想在/etc/hosts.deny的客户端列表中使用域格式语法,如下所示。 在我的情况下,FTP服务是目标守护进程。 vsftpd : .ywlocal.net 但是,我已经在/etc/hosts定义了ftp客户端(tester1)的主机名,但是vsftpd仍然接受来自客户端的连接。 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.11.17 tester1 tester1.ywlocal.net 我也有fqdnforms的客户端主机名。 [root@tester1 ~]# hostname tester1.ywlocal.net 我应该在哪里定义客户端的fqdn来拒绝来自ftp客户端的访问?