服务器管理员

系统和网络管理员的问答

5
我如何防止lighttpd缓存静态文件,即使在磁盘上进行了修改也是如此?
我正在使用lighttpd提供静态文件。我在定期更新的目录中有一堆图像。这将更改文件内容(和文件大小)以及修改日期,但不会更改文件名。 当我通过http访问文件时,不会考虑更新,因此lighty服务于旧文件。我可以手动将文件重命名为其他名称,然后lighttpd将返回404错误,如果重新命名文件,则将获得正确的更新版本。似乎lightty正在使用自己的某种缓存机制(很好)来返回静态文件。不幸的是,似乎在修改文件时该机制不会自我更新。 我通过Wireshark进行了检查,并且我的浏览器确实在对文件进行请求,这不是浏览器缓存问题。从空缓存中请求时,它返回200 OK,否则按预期返回304 Not Modified。但是,该文件返回的错误的Last-Modified标头不能反映实际的最后修改日期。 也许有一些我不知道的配置指令? 我希望lighty返回的文件能够直接反映磁盘上所做的更改,或者至少能够使其缓存无效。 以下问题的任何人的更新:我找到了罪魁祸首。如果我更新静态文件,Lighty不会返回新内容,但是会在其标头中返回新的Content-Length,从而导致显示垃圾内容。如果我使用mod_compress压缩文件,则问题会消失,因为mod_compress使用其自己的缓存系统。不幸的是,我无法压缩所有文件(例如图像文件)。因此,这只是部分修复,但我稍后会再进行讨论,并乐于找到解决方案。
10 lighttpd 


4
合理确定PDU /机架的功率
我一直在努力调整服务器机架中的电源和关联的PDU的大小。某种程度上,我觉得我正在根据电源的铭牌要求来调整大小。 我的简化方法是查看电源上的铭牌,将其累加并确定进给尺寸。在具有10个服务器,1个存储阵列和4个Cisco交换机的机架上执行此操作,会给我留下6-20安培的电路吗?我如何得出这个数字?好吧,我看的是绝对最坏的情况,在我看来,这是我一半的电源出现故障,并且我同时在连接剩余一半电源的3个电路上启动所有设备。因为我必须假设所有负载都将集中在一半的网点上,这实际上使我的需求增加了一倍。 有谁能比这更好的方法?当我告诉客户我需要80或90 A的电流来安装8或9台服务器和一些交换机时,我的客户感到有些惊讶。听起来确实有点过头了。我知道一种选择可能是将高耗电设备(例如服务器和阵列)配置为在恢复电源后不开机。我不知道我是否可以选择延迟开机。那样就好了。交换式PDU是否具有这样的功能,它将分阶段打开插座电源。这似乎是有效的。 澄清度 我知道我可以使用计算器确定稳态功耗,而该功耗要比启动功耗低得多。我最终的担心是立即消耗所有组件的启动功率。从那里开始,我必须有效地将传递到机柜的容量增加一倍,以确保只有一半的可用容量启动,因为一半的电源都发生了故障。 根据一些研究,似乎可以解决问题的开关插座可能是答案。其他人同意还是有更好的解决方案?

4
每当有人通过SSH登录到Linux机器时执行程序
我有一个小型的SSH服务器,我想编写一个脚本,以便每次有人通过SSH登录时运行。 现在,我将如何处理? 我希望每次ANYBODY登录时都运行该脚本,并且我至少需要访问登录者的用户名以及该登录者的IP地址。 我考虑过使用/etc/bash.bashrc,但这是一个好的解决方案吗?例如,有没有一种方法可以使用户禁用其使用,从而禁用我的脚本?如果可以,我还有其他选择吗? 谢谢。
10 linux  bash  ssh 

3
ZFS-L2ARC缓存设备故障的影响(Nexenta)
我有一台作为NexentaStor存储单元运行的HP ProLiant DL380 G7服务器。该服务器具有36GB RAM,2个LSI 9211-8i SAS控制器(无SAS扩展器),2个SAS系统驱动器,12个SAS数据驱动器,热备用磁盘,Intel X25-M L2ARC高速缓存和DDRdrive PCI ZIL加速器。该系统将NFS提供给多个VMWare主机。我在阵列上还有大约90-100GB的重复数据删除数据。 我有两次事件突然导致性能下降,使VM guest虚拟机和Nexenta SSH / Web控制台无法访问,并且需要完全重启阵列以恢复功能。在这两种情况下,都是英特尔X-25M L2ARC SSD发生故障或“脱机”。NexentaStor未能向我发出有关缓存故障的警报,但是在(无响应)控制台屏幕上可以看到常规的ZFS FMA警报。 该zpool status输出显示: pool: vol1 state: ONLINE scan: scrub repaired 0 in 0h57m with 0 errors on Sat May 21 05:57:27 2011 config: NAME STATE READ WRITE CKSUM vol1 ONLINE 0 0 …
10 zfs  ssd  nexenta  zfs-l2arc 

5
正常接管(UNIX)生产服务器的提示
经过数月的疏忽,电子邮件引发了激烈的争执,并且在管理方面进行了斗争,我们目前的系统管理员被解雇,并将“服务器凭据”交给了我。这样的凭据包含一个root密码,别无其他:没有过程,没有文档,没有提示,什么也没有。 我的问题是:假设他把诱饵丢在了后面,我该如何在尽可能短的停机时间内优雅地接管服务器? 详细信息如下: 位于地下室服务器场中的一台生产服务器;ubuntu server 9.x,可能带有grsec补丁(上次我问管理员的谣言) 一台包含所有内部文档,文件存储库,Wiki等的内部服务器。同样,ubuntu服务器已经使用了几年。 假设两个服务器都已打补丁并且是最新的,那么除非有充分的理由(即可以向高层管理人员解释),否则我不希望尝试破解。 生产服务器上托管了一些网站(标准apache-php-mysql),LDAP服务器,ZIMBRA电子邮件套件/服务器,据我所知,vmware工作站正在运行。不知道那里发生了什么。可能是LDAP主服务器,但这是一个疯狂的猜测。 内部服务器具有内部wiki / cms,从生产服务器复制凭据的LDAP从属服务器,更多的vmware工作站以及正在运行的备份。 我可以直接去服务器场的管理员,指向服务器,告诉他们“请sudo关闭该服务器”,以单用户模式登录并自行处理。内部服务器相同。尽管如此,那仍然意味着停机时间,高层管理人员不满,老系统管理员朝我开枪说:“看吗?您无法完成自己的工作”和其他烦扰,最重要的是,我将不得不失去数周的无薪时间。 在频谱的另一端,我可以以root用户和inch身份通过服务器登录,以尝试了解正在发生的事情。遗留引发意外的所有风险。 我正在寻找一种中间的解决方案:尝试让所有事物保持原样运行,同时了解正在发生的事情和发生的情况,最重要的是避免触发任何留下的诱杀陷阱。 您有什么建议? 到目前为止,我考虑过使用内部服务器进行“练习”,断开网络连接,使用实时cd重启,将根文件系统转储到USB驱动器中并将其加载到断开连接的隔离虚拟机上以了解以前的sysadmin方式。思考(“ la'知道你的敌人”)。可以在生产服务器上获得同样的成就,但是完全转储会使人注意到。也许我可以以root用户身份登录,检查crontab,检查.profile中是否有已启动的命令,转储lastlog以及所有想到的内容。 这就是为什么我在这里。任何提示,无论大小如何,都将不胜感激。 时间也是一个问题:可能在几小时或几周内发生触发因素。感觉就像是好莱坞那些糟糕的电影之一,不是吗?

1
FreeBSD:periodic(8)太吵了。如何控制噪音水平?
FreeBSD和MacOSX附带了periodic(8)实用程序,该实用程序井井有条,可以定期运行系统功能,例如ZFS文件系统检查,安全检查,过时端口检查等。 问题是定期发送太多电子邮件,其中包含太多多余的信息。这使人们忽略了电子邮件,并且我们错过了periodic(8)提出的许多问题。每日电子邮件每天发送一次,安全电子邮件每天发送一次,每周和每月电子邮件也定期发送。这些电子邮件的主题行如下: Subject: $HOSTNAME daily run output Subject: $HOSTNAME security run output Subject: $HOSTNAME weekly run output Subject: $HOSTNAME monthly run output 如何减少来自periodic(8)的电子邮件发送量? 我将在下面发布自己的答案,但我想看看其他人做了什么。 注意:在Linux上,我也有一个关于Linux的类似问题:logwatch(8)和cron.daily太吵了。如何控制噪音水平?

2
随GPO一起安装的升级软件包
从最近开始,我一直在使用AD策略通过GPO在小型域上部署软件包。这一直很好,但是我不确定升级软件包的正确步骤是什么。 假设我最初已经通过名为“ Install X ”的GPO 部署了X版本a。一切正常,并且随着时间的推移,版本b已发布。(假设新版本的.msi可以执行已安装版本的升级),我相信可以使用以下选项来执行升级: 替换分发点中的原始.msi,然后通过“组策略编辑器”(打开GPO“ 安装X ”),在“ 计算机配置/软件设置/软件安装”下,将任务分配给“重新部署应用程序” 使用组策略编辑器在“ 计算机配置/软件设置/软件安装”中为新版本创建一个新软件包,并指定该版本应升级的旧软件包(在“升级”选项卡上,选择版本a的软件包;用于卸载现有软件包或执行以下操作的选项)升级) 使用组策略编辑器删除版本a的软件包(带有立即卸载选项)并添加版本b的新软件包 问题: 第一种选择的缺点是什么? 第二个选项是通过GPO分发软件包的正确/推荐的升级软件包的方法吗? 关于通过GPO升级软件包,还有其他一些细微之处,最佳实践或一些一般性建议吗? 编辑:另外,我只正确地测试了3,所以如果我错过了1和2中的一些重要步骤,我将感谢指针。:)

1
服务:“手动”和“禁用”之间有什么真正的区别?
我只是看着我们的服务器,考虑禁用所有我们不使用的服务,这让我感到奇怪: 提供的服务永远不会被任何人调用,而只是坐在“手动”上,在这种状态下它是否会占用任何系统资源?纯粹从系统资源POV来看,将未使用的服务设置为“已禁用”会更好吗? 只是想知道资源是否真的有差异?(忘记安全问题,这显然是另一个问题。)


3
与“云”文件存储相比。自助式服务器(云计算有什么大不了的?)
因此,我将直接学习数学。我的网站托管服务商提供的服务器具有5x2TB的驱动器,无限制的1GB / s连接,并可以在5个不同的数据中心中配置服务器,每月费用约为200美元。 如果我有3台这样的服务器并在它们上安装OpenStack Swift,我的存储量大约为10TB(我想会少于10TB,但是为了简化数学运算,我只想说10TB),其存储功能与Rackspace Cloud相同但价格为$ 0.058 / GB(相比之下,Rackspace为$ 0.15 / GB)。加上免费的无限带宽。可以在3个不同的DC中配置服务器以实现冗余,并且可以在一小时内扩展新服务器,因此如果需要,我们可以合理地快速扩展存储。我们也将使用CDN来传送内容,所以是的,将收取带宽费用,但它们将是外部费用,因此与问题无关。 显然,这只有在使用大量存储的情况下才更为有效(例如2GB效率要低得多),但是我们在RSC文件帐户上拥有7.5TB的备份,因此我们每GB的有效价格为$ 0.078(但是这会降低)相比之下,我们目前的Rackspace系统每月的费用超过$ 1000。 因此,我的问题是,除了必须管理我们自己的服务器并付出更多努力进行扩展之外,自我管理的存储系统与Rackspace云之类的东西之间有什么区别,是否值得$ / GB的差额+带宽费用?

4
无法从Mac OS X通过VPN连接解析主机
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 5年前关闭。 序言 我从Macbook建立了VPN连接,看来连接成功。 但是,由于无法解析主机名,因此无法访问我的工作计算机: $ ping myusername ping: cannot resolve myusername: Unknown host 新的解决方法 在尝试了一切之后,我发现此命令使VPN网络和Internet都可以使用: sudo route add -net 192.168.7.218 192.168.7.117 255.255.0.0 公司的DNS服务器可通过其IP访问。如何配置网络以将其用于从192.168开始的所有内容? 旧的解决方法 我发现了一个临时解决方法,该方法允许我通过修改两个选项来通过VPN访问网络: 我在“ 通过VPN连接发送所有流量”中打了一个勾号: 我在VPN界面的DNS设置中手动输入“搜索域名”: 执行以下两个步骤足以使我的工作计算机可ping通: $ nslookup myusername Server: 192.168.10.16 Address: 192.168.10.16#53 Name: myusername.universe.mycompany Address: 192.168.11.56 $ ping myusername PING myusername.universe.mycompany (192.168.11.56): 56 …

1
centos 5.6上的apache给我权限被拒绝的错误
我在centos 5.6上运行apache,每当我尝试在除/ var / www / html(apache默认根目录)之外的任何目录中加载php脚本时,它都会给我一个权限被拒绝的错误。 但是,当我对照默认目录(/ var / www / html)检查我的新根目录(/ var / www-dev)的权限时,它们的匹配相同。都说:root:root 755 我什至尝试将所有权更改为apache:apache,但仍然遇到相同的错误 但是当我改回apache配置时,它是默认的根目录(/ var / www / html),一切正常。 难道我做错了什么? 这些是我正在更改的设置: DocumentRoot "/var/www/html" <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> 注意:每次更改apache配置和权限时,我都会重新启动apache。 以及:我也启用了REMI和EPEL

3
自动重命名SQL Server
我们正在更换SQL Server的过程中,已决定重命名服务器本身要比更改其他所有内容指向新名称要容易得多。我们发现了有关更改SQL Server实例名称以匹配计算机名称的说明,如下所示: sp_dropserver 'OLDSERVER' sp_addserver 'NEWSERVER', local 尽管SQL Enterprise Manager似乎不太喜欢它们。我必须将其更改为以下内容才能使其协同工作: sp_dropserver 'OLDSERVER'; GO sp_addserver 'NEWSERVER', 'local'; GO 不错,但是我希望事情更加自动化。由于@@ ServerName返回实例的名称,因此我弄清楚了如何自动执行第一行: sp_dropserver @@ServerName; GO 我还了解到SERVERPROPERTY('ServerName')应该返回计算机名称,因此我想我可以使用它来自动化第二部分,但这没有用: sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO 我尝试设置一个变量,无论如何我都需要这样做以更新SQL Agent作业,但这也不起作用: DECLARE @srv sysname; SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname); sp_addserver @srv, 'local'; GO 'sp_addserver'附近的语法不正确。 我非常希望不必将新服务器名称硬编码到脚本中,以使其更易于重用。有人有想法吗?

3
我不应该在CentOS上备份哪些文件夹?
我正在使用rsnapshot来开始备份CentOS 5.5安装,并且我需要一个可能应该从备份中排除的文件夹列表。该服务器主要是LAMP Web服务器,并且在备份时将服务,尽管该服务器的体积应相对较小。备份/ var / lib / mysql是个坏主意吗? 我假设我不必担心备份/ proc,不需要备份哪些其他文件夹?

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.