Garey's Blog–FreeBSD/PHP/GoLang

十一月 13th, 2010

Web页面通过PHP脚本实现远程管理系统

19,683 views, FreeBSD, PHP, by garey.

开发过程中,可能会出现一种情况,开发人员需要不停的重启服务器上的某个服务来进行测试,以便调试代码,当开发人员没有远程管理系统权限的时候,就需要系统人员进行配合,因此考虑在Web服务器上架设一个简易的远程管理系统,以便开发人员能够管理远程服务器。

实现想法:

远程管理系统的脚本可以使用expect来实现,再由Web执行PHP程序调用shell脚本实现远程管理。

实现过程:

1、安装expect程序

Web系统为FreeBSD,expect需要安装

cd /usr/ports/lang/expect
make install clean

2、编写expect脚本

vi /home/garey/scripts/rebootService.sh

#!/usr/local/bin/expect
set timeout 30
spawn ssh user@xxx.xxx.xxx.xxx
expect “password:”
send “1234r”
expect “~]$”
send “cd scriptsr”
expect “scripts]$”
send “./restartService.shr”
expect eof
exit

3、编写Shell脚本

vi /home/garey/scripts/php_rebootService.sh

#!/bin/sh
/home/garey/scripts/rebootService.sh > /dev/null &

4、编写PHP脚本

vi rebootservice.php

<?php
$cmd = ‘/home/garey/scripts/php_rebootService.sh’;
passthru($cmd);
?>

5、注意

SSH登陆需要证书,所以Web服务器执行PHP脚本的用户目录下,.ssh/known_hosts文件中必须存在xxx.xxx.xxx.xxx ssh-rsa XXXXXX…字样,没有的话,用该账号登陆一次远程服务器就可以了。

Back Top

回复自“Web页面通过PHP脚本实现远程管理系统”

  1. Good, Tks

    奋斗

发表评论