PHP远程执行SSH封装
有一个特殊需求,需要远程在管理多台主机,执行一些命令操作,又不想在远程机器上多装程序或者做接口。考虑了几个方案,nginx+lua,nginx+python,都比较麻烦。想来想去,干脆直接php执行shell好了。查了一下,有libssh2+ssh2的方案,了解之后觉得还不错,只需要在主控一端安装,并且是熟悉的PHP。于是装了个试试,封装了一下常用的几个ssh操作。
寻找大师, 跟随大师, 模仿大师, 洞察大师, 成为大师!
有一个特殊需求,需要远程在管理多台主机,执行一些命令操作,又不想在远程机器上多装程序或者做接口。考虑了几个方案,nginx+lua,nginx+python,都比较麻烦。想来想去,干脆直接php执行shell好了。查了一下,有libssh2+ssh2的方案,了解之后觉得还不错,只需要在主控一端安装,并且是熟悉的PHP。于是装了个试试,封装了一下常用的几个ssh操作。
之前的通用Linux服务器备份打包脚本因为有新的需求,添加了一些功能.新版本能根据配置文件对指定目录单独打包,更新规则还是一样,保留1号的包,删除指定天数前的包。打包与同步的程序不一样,但是配置文件相同,这就只需要将配置文件放在需要同步的目录下,就能确保打包与同步的策略一致,具体同步程序的代码请猛击服务器运维同步备份脚本 同步篇。数据库使用主从同步到备份的服务器上,打包程序会将它导出,放到指定位置。配置文件及打包程序代码如下:
这个脚本可以用来检查服务器上哪个目录发生了文件过量的情况,提前发现可能发生的超多文件目录的情况。主要使用的是find命令,先find所有的子目录,然后再用find找出所有文件,然后用wc来获取文件数量。脚本能够设定成邮件模式,加入crontab可以在指定时间执行,然后将运行结果邮件给指定的用户。还可以设定find的深度,避免目录层数过多而浪费时间。详细内容见代码。
因为最近需要高并发,还要文件索引强,于是看中了nginx,而且不久前它发布了第一个稳定版,于是坚强勇敢的将它搭了起来。通常nginx是没有启动脚本的,这里分享一个自己随便写的,包括start|stop|restart|status|configtest功能,各位看官有需求就拷了用吧,见代码,记得针对自己的环境修改一下代码中的路径:
服务器安全是个大问题,一般使用linux服务器,用得最多,最基础的就是iptables防火墙了。关于iptables详细用法可以参考我另一篇日志:我的iptables总结,本文将与大家分享一下一个简单方便的脚本用于管理iptables服务,相对于采用service的管理方式更加灵活。
最近在做一些服务器安全方面的shell,有用到判断输入是否合法ip地址。在网上搜了一圈,有很多做法,最简单的就是直接判断输入内容是否全部为数字和“.”符号,这样的判断太范了,无法做到准确。更准确一些的就包含了字符个数等。后来找到了一个比较严谨的做法,经验证的确可用,代码如下: