在小公司工作,有一点好处就是可以接触到方方面面,并且可以自由的发挥想象力把事情做得不一样。
公司这边大概十几人的团队,版本控制等重要的服务器放在比较省心的地方,但是开发服务器还是需要放在本地局域网环境中,保证访问速度,减少网速等因素对工作效率的影响。由于开发服务器不需要不间断的工作,因此合理的利用以及节约资源是需要的。其实由于前面完全人工管理开发服务器,经常忘记关机,已经报废了好几块硬盘,早上到公司后也不是第一时间开启服务器,连不上数据库了才想起开发服务器没开启,也很耽误时间。
初步的需求设想:
1.自动开机关机,延长机器寿命。
2.大部分server都是在这台机器上挂的虚拟机,所以也需要管理虚拟机开机关机。
3.炎热夏季,控制空调开关。
自动开机关机方案: 现在的主板bios中一般都支持自动开机,电源管理里面可以设置自动开机时间,缺点是只能按照星期设定。自动关机就更简单了,windows里面制定任务计划执行bat(linux下任务计划执行shell也是一样的), 自动关机命令
shutdown -s
为什么选择执行bat的方式关机?----------因为还要关闭虚拟机。
虚拟机自动开机关机方案: 虚拟机采用的是virtualbox,通过bat调用virtualbox的启动和关机命令即可,但是这里需要注意的是:a.有时候挂了虚拟机会忘记设置虚拟机的屏保时间,造成虚拟机是屏保状态,调用一次关机只是唤醒了虚拟机,而不是关机,这里需要注意间隔上一两分钟再次调用关机命令。b.virtualbox有一个headless模式,即不启动虚拟机的图形界面,一headless模式启动虚拟机会节省不少资源,缺点是不能远程桌面连接了,我们选择的是节省资源。
cd C:\Program Files\Oracle\VirtualBox
关机命令
VBoxManage controlvm {c7a8b98d-c571-44a6-ba99-964274dd3a0b} acpipowerbutton
开机命令
VBoxManage startvm {c7a8b98d-c571-44a6-ba99-964274dd3a0b} --type headless
括号内是虚拟机的唯一标识,显示uuid的命令(startvm 命令的参数也可以是虚拟机名称,名称内有空格的时候,给整个名字加上引号)
VBoxManage list vms
控制空调方案: 用智能开关直接控制空调的电源?当然你想这么做也不是不可以,会不会突然断电把空调的压缩机给废了,我就不解了。
我们采用的方案是遥控。现在的空调几乎都带遥控,遥控的原理就是红外信号,淘宝上可以买到一种插到手机耳机接口上的红外发射器(很便宜,几块钱一个),原理是播放wav音频,产生电流,红外发射器根据电流的变化,发射出红外信号,进而达到控制目的,常用的app有遥控精灵、遥控大师。
如何让这个接耳机接口的红外发射器在电脑上工作起来,其实就是在电脑上播放wav文件而已。。。bat直接调用media player即可,需要注意的是电脑音量开到最大,电脑声卡功率不同效果会有差别。接红外发射器以及播放wav文件都很简单,如何获取开空调关空调命令的wav数据才是关键,随后再专门写一篇文章讲解。
下一步的计划:
1.买一个arduino板子,把各类控制独立出来。
2.支持语音控制,比如导出某服务器的某数据这样子的操作通过语音控制,相信会极大提高效率(脑子太笨了,命令太多了,记不住啊记不住)
3.自动备份各类数据到网盘全(免费空间真不小,不利用起来太浪费)。这部分已经做了一些工作,起初想的是通过调用网盘api来上传,无奈世界太现实,可以看看我的另一篇博文《国内巨头OPEN现状》。简单有效的办法就是装一个网盘客户端,把要备份的数据导出到指定目录,让网盘客户端同步那个目录吧。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。