PHP远程执行SSH封装
有一个特殊需求,需要远程在管理多台主机,执行一些命令操作,又不想在远程机器上多装程序或者做接口。考虑了几个方案,nginx+lua,nginx+python,都比较麻烦。想来想去,干脆直接php执行shell好了。查了一下,有libssh2+ssh2的方案,了解之后觉得还不错,只需要在主控一端安装,并且是熟悉的PHP。于是装了个试试,封装了一下常用的几个ssh操作。
寻找大师, 跟随大师, 模仿大师, 洞察大师, 成为大师!
有一个特殊需求,需要远程在管理多台主机,执行一些命令操作,又不想在远程机器上多装程序或者做接口。考虑了几个方案,nginx+lua,nginx+python,都比较麻烦。想来想去,干脆直接php执行shell好了。查了一下,有libssh2+ssh2的方案,了解之后觉得还不错,只需要在主控一端安装,并且是熟悉的PHP。于是装了个试试,封装了一下常用的几个ssh操作。
小伙伴要迁移服务器,因为web主机和数据库主机是分开的,所以需要测试新环境数据库请求的效率。他写了一个PHP脚本用来测试,但是问题在于PHP没有线程,所以相当于单线程的请求。略不合理,不能看出在多并发的情况下请求效率如何。谷歌一下没看到合适的工具之后决定自己用perl写一个。代码地址:https://github.com/sillydong/MySQL_Timer。
本文的程序与服务器运维同步备份脚本 打包篇联合使用,用来同步文件数据,数据库请使用主从热备到备份主机上。同步所使用的配置文件已在打包篇中列出,可对照使用。同步程序是利用rsync进行同步,可以对配置文件中指定的目录排序,详细代码如下:
之前的通用Linux服务器备份打包脚本因为有新的需求,添加了一些功能.新版本能根据配置文件对指定目录单独打包,更新规则还是一样,保留1号的包,删除指定天数前的包。打包与同步的程序不一样,但是配置文件相同,这就只需要将配置文件放在需要同步的目录下,就能确保打包与同步的策略一致,具体同步程序的代码请猛击服务器运维同步备份脚本 同步篇。数据库使用主从同步到备份的服务器上,打包程序会将它导出,放到指定位置。配置文件及打包程序代码如下:
脚本可以用来对mysql的运行做一些简单的自动化,包括显示当前进程,显示指定变量,显示当前状态,以及kill指定进程。目前所做的事还比较简单,都是通过mysqladmin命令来实现。代码及用法如下,使用前将mysql用户相关信息补全:
之前一篇Nginx启动脚本能满足基本需求,没那么完善,这会儿放出一个较完善的,来源网络,已不可考,但用起来确实还不错,见代码: