用OSX的say命令让Nagios报警叫出来

Mac OSX系统有个有趣的命令say,传入一段文本就可以让系统读出来。比如你可以打开OSX的Terminal.app,然后输入say hello OSX,听听会不会响。 因为机缘巧合,我们项目的CI服务器装在一台Mac Pro上了,在写脚本监控CI Server进程或者做CI monitor的报警的时候,就可以用这个say命令把一些信息读出来,再在Mac上插个大喇叭,这样整个项目组都能听得见了。 比如:say Go server went down, no dzuo no die, ... »

向多台机器分发文件 - bounce

最近在公司遇到了把一个几十G的虚拟机镜像文件分发到10来台机器上的问题,前期基础设施没有搭建好到后来就是会比较痛,如果这些机器用puppet或者chef管理起来了的话这事儿或许会好办一些。 首先当然不能手动一台一台拷贝。 其次也不能同时向这十几台机器,因为: 假定文件size是S,出口带宽是B,机器数目是C, 那么分发时间是S/(B/C),等于(S/B)*C,还是相当于一台一台拷贝的速度 有没有更快的方案? 很自然的我们想到了非常高大上P2P方案,这个业界传说face... »

在PowerShell里并行执行脚本

在Bash里并行执行脚本有几种方法,可以在Bash里可以用把一个任务后面加&开一个subshell直接甩倒后台去执行,也可以用GNU Parallel对并行执行的任务做更精细的控制。 而在PowerShell脚本里并行执行脚本,也有多种方法,一是用Start-Job命令启动一个background job,二是用并行的Workflow。 并行的Workflow PowerShell 2不支持,并且PowerShell的Workflow有一个很明确的限制是不能包含交互的命令。比如... »