服务器管理员

系统和网络管理员的问答

5
更新多个sudoers文件
我们有多台向Active Directory域进行身份验证的Linux服务器。对于AD中的组,我想添加允许使用sudo以root身份运行的命令列表。我显然可以插入到每台计算机并更新sudoers文件-但这将需要一些时间。另外,不允许root登录。因此,少密码登录仅适用于非root用户。 有没有一种快速的方法可以立即为每台Linux计算机更新sudoers文件?我在这里考虑具有某些系统管理功能的Perl或Python脚本。 更新:感谢veroteq7和Shane Madden。我曾考虑过一次部署cfengine,但目前还没有运行它。我们已决定使用LDAP是最佳解决方案。导入sudo的LDIF架构schema.ActiveDirectory时出现错误。错误是第144行上的“参数不正确”。 这是从第144行开始的内容: dn: CN=sudoRole,CN=Schema,CN=Configuration,DC=X changetype: add objectClass: top objectClass: classSchema cn: sudoRole distinguishedName: CN=sudoRole,CN=Schema,CN=Configuration,DC=X instanceType: 4 possSuperiors: container possSuperiors: top subClassOf: top governsID: 1.3.6.1.4.1.15953.9.2.1 mayContain: sudoCommand mayContain: sudoHost mayContain: sudoOption mayContain: sudoRunAs mayContain: sudoRunAsUser mayContain: sudoRunAsGroup mayContain: sudoUser rDNAttID: cn showInAdvancedViewOnly: FALSE adminDisplayName: sudoRole adminDescription: Sudoer …
8 sudo 

2
Keep-alive选项在Linux上无法用于传出连接
有谁知道Linux是否在传出连接上支持keep-alive套接字选项? 我使用keep-alive选项建立了传出连接,但netstat --timers显示关闭(我假设计时器关闭): tcp 0 0 localhost.localdomain:44307 172.16.0.15:2717 ESTABLISHED off (0.00/0/0) 应用了相同套接字选项的传入连接显示: tcp 0 0 172.16.0.3:8585 localhost.localdomain:21527 ESTABLISHED keepalive (29.26/0/0) 我希望我能看到套接字选项,但是ss或lsof都不会向我显示它们。

3
我可以在Nagios上设置其他身份验证方法吗?
Nagios对于监视服务器也非常有用。他们的网络界面也不错。但是,我对使用标准的HTTP身份验证并不感到疯狂。 有没有办法使用另一种身份验证方法?(我并不是说要限制.htaccess文件中IP地址的访问权限)使用基于表单的登录名可能会很不错,但是也许没有这种事情。我希望你们找到了我没有的东西。

2
Nginx配置有编程接口吗?
我将nginx用作Web服务器实例前面的负载平衡器。我运行Web服务器的4个实例,并使用nginx在它们之间平均分配流量。部署新版本时-更改nginx.conf并将4台服务器中的前2台标记为关闭,然后重新启动nginx。我更新服务器代码并重新启动前2台服务器。然后,我编辑nginx.conf以指示前2台服务器已启动,并将其他2台服务器标记为关闭,再次重新启动nginx。然后,我更新并重新启动其他两个实例。再次更新nginx.conf,将所有服务器标记为已启动,并最终重新启动nginx。 在某些日子里,我必须多次执行此过程。每次手动执行上述步骤都容易出错。 是否可以通过编程方式访问nginx / nginx.conf,以便使该过程自动化? [我现在想象的唯一方法是在shell脚本中编写以上步骤]
8 nginx 

1
GotoMyPC?担心还是OK?
一些用户自己承担了将本软件安装在工作计算机上并使用iphone / ipad进行连接的责任。当前设置是anyconnect / ciscovpn连接并使用远程桌面在家工作。思科Web门户也可以访问一些与Intranet相关的系统。 该网络位于Cisco ASA后面,仅包含公司的PC和服务器。所有其他设备都使用与主网隔离的来宾网络。 有没有人熟悉在这种情况下允许GotoMyPC?我应该采取预防措施吗?是否应该允许?还是可以? 我主要担心的是,通过使用该软件,我绕过了防火墙系统并打开了我不想打开的门。 由于我不熟悉该服务,因此正在寻找类似情况下某人的反馈。 谢谢。

2
为什么REGSVR32找不到明显存在的DLL?
我正在全新的Windows 2003 Server上安装自定义应用程序。需要添加和注册几个DLL,我将它们复制到C:\ WINDOWS \ System32文件夹中的服务器上-当我们在Windows NT和2000上运行应用程序时,它们一直都在其中。 但是,当我尝试使用以下方法注册它们时: regsvr32 c:\ windows \ system32 \ nameoflibrary.dll 它返回: LoadLibrary("c:\windows\system32\nameoflibrary.dll") failed - The specified module could not be found. DLL就在那里。我能看到它。如果我将路径复制到Windows资源管理器并尝试运行它,它会告诉我无法运行DLL,所以我知道它在那里。一个小的复杂之处是DLL是在VB5中内置的-但是VB5运行时已安装在服务器上,因此这应该不是问题。 有任何想法吗?
8 dll 


2
使用Nginx重写传出响应中的URL
我们有一个客户,其网站在Apache上运行。最近,该站点的负载不断增加,并且我们希望将站点上的所有静态内容转移到无cookie域,这是一个停顿点http://static.thedomain.com。 该应用程序不是很好理解。因此,为了给开发人员时间修改代码以将其链接指向静态内容服务器(http://static.thedomain.com),我考虑过通过nginx代理站点并重写传出的响应,以便将链接/images/...重写为http://static.thedomain.com/images/...。 因此,例如,在Apache对nginx的响应中,出现了标题+ HTML的斑点。在从Apache返回的HTML中,我们有如下<img>标签: <img src="/images/someimage.png" /> 我想将其转换为: <img src="http://static.thedomain.com/images/someimage.png" /> 这样浏览器在接收到HTML页面后便直接从静态内容服务器请求图像。 nginx(或HAProxy)可以做到吗? 我粗略浏览了一下文档,但是除了重写入站URL之外,没有其他事情对我有所帮助。

2
脚本执行后导出的变量未持久
我面临一个棘手的问题。我有一个带有solaris 11的虚拟机,并尝试编写一些bash脚本。 如果在外壳上输入: export TEST=aaa 然后运行: set 我正确地看到了一个名为TEST的新环境变量,其值为aaa。但是,如果我在脚本中做基本上相同的事情。当脚本终止时,我看不到变量集。举一个具体的例子,如果在文件test.sh中,我有: #!/usr/bin/bash echo 1: $TEST #variable not defined yet, expect to print only 1: echo 2: $USER TEST=sss echo 3: $TEST export TEST echo 4: $TEST 它打印: 1: 2: daniele 3: sss 4: sss 执行后,未在外壳中设置TEST。我想念什么吗?我试图既做出口TEST = sss和单独的变量集/出口没有区别。
8 bash  solaris 

1
如何确定哪个应用程序正在泄漏未分页的内存?
最近,我们的实时服务器出现问题,导致我们的Web应用程序停止响应。我们得到的都是503错误,直到重新启动服务器,然后一切正常。最终,我将其追溯到httperr.log,发现了很多1_Connections_Refused错误。 进一步的调查似乎表明我们已经达到了非分页池限制。从那时起,我们一直在使用Poolmon.exe监视未分页的池内存,并且我们认为我们已经确定了导致问​​题的标签。 Tag Type Allocs Frees Diff Bytes Per Alloc Even Nonp 51,231,806 50,633,533 684,922 32,878,688 48 如果我们使用poolmon.exe / g,它将映射的驱动程序显示为[<未知>事件对象]。 这根本没有帮助。我的团队花费了大量时间来研究此问题,但是还没有找到将其范围缩小到特定应用程序或服务的过程。我感觉到,大多数人似乎通过杀死计算机上的进程来解决问题,直到他们看到未分页的内存重置为止。这并不是在生产机器上工作时想要看到的。 如果我打开任务管理器并查看进程列表。我看到MailService.exe的NP池值为105K,比第二个列出的进程的值高36K。由于过去我们的邮件服务器存在一些问题(可能与此问题相关,也可能与该问题无关),我的直觉是这是导致此问题的原因。 但是,在我们重新启动服务之前,我想拥有的不仅仅是确定的感觉。 我也尝试使用poolmon.exe / c,但这总是返回错误: unable to load msvcr70.dll/msvcp70.dll 而且它不会创建localtag.txt。我的同事不得不从互联网上下载pooltag.txt,因为我们无法确定它的位置。我们没有安装Win调试器或Win DDK(我可以看到)。可能是由于没有安装上述任何一个错误而导致的,但我不知道。 最后我尝试了: C:\windows\system32\driver\findstr /m /l Even *.sys 这返回了相当大的.sys文件列表,再次对当前的问题完全没有帮助。 所以我的问题是:还有其他方法可以缩小导致此内存泄漏的原因吗? 更新: 如下所示,我已经记录了最后一天左右的池未分页字节数,以查看是否有任何趋势。在大多数情况下,所有过程的使用似乎都是静态的。他们中的两个看起来略有滴答声。在接下来的几天中,我将继续进行监视。 我也忘记了前面提到的任何一个进程似乎都没有使用过多的句柄。 更新2: 最近几周我一直在监视它。在此期间,单个进程的非分页字节池和总的非分页字节池都保持相对稳定。在此期间,Windows已更新,服务器重新启动,因此我想知道是否已经解决了问题。现在,我肯定没有看到非分页字节池的持续增长。



5
用TCP / IP术语来说,办公室中的下载速度限制器如何工作?
假设有一个办公室,他们希望将HTTP下载限制为互联网连接速度的最大40%带宽,以免阻止其他流量。 我们说“您的防火墙不支持它”,并且他们说不可避免的话“我们过去能够通过Netgear / DLink / DrayTek做到这一点”。 考虑一下,下载是这样的: HTTP GET request Server sends file data as TCP packets Client acknowledges receipt of TCP packets Repeat until download finished. 速度取决于服务器向您发送数据的速度以及您确认数据的速度。 因此,要限制下载速度,您有两种选择: 1)指示服务器更慢地向您发送数据-我认为没有任何协议功能可以在TCP或HTTP中请求它。 2)通过限制您的上传速度来更慢地确认数据包,并且还会破坏您的上传速度。 设备如何进行此限制?有没有标准的方法?
8 networking  tcp 

2
启动时运行Upstart用户作业
我正在运行Ubuntu服务器11.04。我已经按照此处所述创建了Upstart用户作业。 我的档案如下/home/myuser/.init/sensors.conf: start on started mysql stop on stopping mysql chdir /home/myuser/mydir/project exec /home/myuser/mydir/env/bin/python /home/myuser/mydir/project/manage.py sensors respawn respawn limit 10 90 正如myuser我可以开始,停止和重新加载作业一样,它可以正常运行: $ start sensors sensors start/running, process 1332 $ stop sensors sensors stop/waiting 问题在于,启动时作业不会在启动时自动mysql启动。重新启动后,mysql正在运行,但我的sensors工作没有。 奇怪的是,尽管该作业不是在启动时就开始的,但是如果我sudo用来重新启动mysql它的确可以启动我的作业。下列命令myuser从全新启动开始运行: $ status sensors sensors stop/waiting $ sudo restart mysql mysql start/running, process 1209 $ …
8 ubuntu  upstart 

5
ASP.NET高CPU使服务器屈指可数
好的,我们的新版本在每台服务器上随机间隔有100%的CPU峰值。长期以来,它会使网站完全无响应-这将在高峰时期,因为不同国家的人登录到网站等。 我们研究了perfmom,内存探查器,CLR探查器,sql探查器,Red Gate蚂蚁探查器,尝试在UAT中进行负载测试-但甚至无法重现该问题。这可能意味着只有成千上万的用户点击了实时站点才导致它发生。 我们确实注意到的一种模式是,新代码-残破的构建-实际上使用了明显更少的线程。 我们还在IOC上使用弹簧-它有床的声誉吗? 更糟糕的是,由于业务影响,我们无法部署到现场-因此无法将问题缩小到我们添加的新功能的子集。 我们确实被摧毁了-有人有任何战斗伤痕可以挽救我们的生命吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.