服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

git,nagios和钩子,损坏的git回购

背景 我们正在使用nagios监视我们的基础设施。 目前我们没有版本控制下的nagiosconfiguration,而且我们有两个pipe理nagiosconfiguration。 因此,我正在努力将我们的nagiosconfiguration变成一个中心的git仓库,使用一些钩子来做语法检查,然后如果configuration看起来不错,就让它们“活跃”。 我使用这个人的职位作为一个起点。 我试图实现的一般工作stream程是: 编辑nagiosconfiguration的本地git仓库。 添加编辑的文件,在本地提交。 git push origin master到远程回购。 Push被预先接收的钩子截获,钩子接受文件,将它们移动到服务器上的临时目录,并通过nagios语法检查器运行它们。 如果语法检查程序通过,接受推送,然后使用post-commit挂钩将git pull新代码拖到活动的nagiosconfiguration目录中,然后重新启动nagios。 如果语法检查器失败,则拒绝推送,向用户显示nagios语法错误。 我遇到了一个奇怪的行为,但是,当我拒绝由于在nagiosconfiguration语法错误的git推。 我期望发生的事情是,如果我拒绝这个钩子,那么尝试的推送应该离开存储库,原封不动。 但似乎并非如此。 以下是我所看到的细节: 问题 我在本地编辑nagiosconfiguration,故意包含语法错误,添加,然后在本地提交: host:nagios erik$ vi nagios.cfg host:nagios erik$ git add nagios.cfg host:nagios erik$ git commit -m "syntax error" [master da71aed] syntax error 1 files changed, 1 insertions(+), 0 deletions(-) 现在我把这些改变推到主回购。 由于语法错误,这将被拒绝: host:nagios erik$ git push […]

在Exchange 2010中安排/排队大型电子邮件,推迟到等待时间下降为止

我的挑战 我们在各个站点都有Exchange服务器,还有船上的服务器。 在海上时,船舶通过卫星链路连接到我们的networking,但在港口时切换到WiFi网桥。 由于高等待时间(500 + ms)和非常见的中断(例如船只转弯时),试图在海上发送几兆字节以上的电子邮件很可能会失败并重试,直到极限已经达到。 结果:电子邮件没有得到传递,每次尝试都会在sat链接上消耗宝贵的带宽。 一个“解决scheme”是将最大电子邮件大小限制为5MB,但这不是用户友好的,并且在端口上是不必要的限制。 粗略的想法 我宁愿做的事情是将所有大于设定限制的电子邮件排队,以便在海上稍后交付时,立即发送所有小型电子邮件。 当时我正在考虑定期在数据中心对集线器传输服务器进行ping操作,当延迟低于400毫秒时,我开始处理大型邮件队列。 当延迟时间超过400毫秒,我会堵塞漏洞,让电子邮件再次排队。 现在,从2003年以来,我还没有对Exchange执行过真正的操作。当时,您可以安排大量的电子邮件以便稍后交付,所以我的想法是在Exchange 2010中做类似的事情,然后使用脚本来切换交付安排“永远”和“永不”之间的大邮件。 障碍 创build一个这样的脚本不应该太复杂,但是随后我发现,使用Exchange 2007删除了我所依赖的function: 这是Exchange 2003中的一个function,但是在Exchange 2007中删除了它。它在SMTP连接器上设置为“对于超大尺寸的邮件使用不同的传送时间”。 TechCenter:是否可以根据Exchange中的大小安排电子邮件传送? 问题 这是真的吗? – 此function在Exchange 2010中不再存在,还是仅仅转换为类似的东西,我可以用来实现我的目标? 如果是这样,什么? 是否有另一种方法推迟在某些Exchange服务器上传送大型电子邮件? 它可以基于一个时间表,甚至可能需要采取具体行动 – 我相当肯定会有一些方法来通过脚本来触发交付,我只需要在船上的一个单独的队列中的大型电子邮件。 您的想法将不胜感激! 🙂 编辑#1:精炼粗糙的想法 我瘫痪了两个PowerShell CmdLets,我认为可以使我非常接近我的目标: Suspend-Message Resume-Message 我玩了一会儿Get-Message,看看上面的命令会处理什么样的消息。 最重要的是,这些命令接受一个消息大小filter。 此命令将列出大于5 MB(5,242,880字节)的当前服务器上排队的消息: get-message -Filter {Size -gt 5242880} 看来Get-Message只会返回来自各种远程传送队列的消息。 但是,服务器内部的消息是否会短暂地出现在Get / Suspend / Resume-Message将被混淆的队列中? 如果不是这样,那么解决scheme可以像每隔几分钟一个简单的脚本一样简单(沿着伪代码): if […]

英特尔AMT(主动pipe理技术)如何不干扰TCP / IP主机堆栈?

我一直使用的英特尔开发工具包包括远程pipe理function (请参阅Ubuntu的手册页 ),在操作系统挂起时允许远程重启。 它具有在与操作系统共享的IP地址上监听几个端口(具体地说是16992和16993)的能力。 (通过侦听DHCP请求或发出自己的;我不知道,但无论哪种方式,它在这种模式下使用共享的MAC地址) 我有一个单独的IP地址运行,因为我担心一个潜在的用例: AMT如何防止主机networking堆栈与它冲突? 换句话说,英特尔pipe理软件现在正在监听(至less)两个TCP端口,带外和操作系统的知识。 比方说,我启动到远程主机的TCP连接,主机堆栈select16992或16993作为本地端口来侦听[返回到数据包的数据包]。 从远程主机返回的数据包是否会被“篡改”而不能到达操作系统? 还是有一些预防措施,如Linux内核中的英特尔驱动程序知道TCP应该避免端口16992? (似乎不太可能,因为这是一个操作系统无关的function。)或者,也许pipe理界面可以转发stream量发送到端口16992不属于已知的pipe理会话回到主机栈? 无论哪种方式,我不愿意使用这个networking密集型负载,直到我明白这是如何工作的。 我搜查了英特尔文档 ,也找不到任何东西。 我想这可以通过启动约30,000个TCP连接来testing,并检查连接是否工作,即使端口重叠。 但我还没有机会这样做。 (脚注:我意识到这个问题与基于英特尔®博锐™处理器的计算机如何维护IP连接类似,但是这些问题通常会解决连接问题,而不是连接到与主机堆栈重叠的特定TCP端口。