`
lujar
  • 浏览: 512475 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Webmin-RPC 改造可行性证明

阅读更多
测试基本上和我想得一样。方法是修改webmin里面的lib一类的文件,把html相关的地方修改成xml,然后返回。也就是说,基本上还是webmin的代码,修改一下print里面的东西。我想找个本科生一个个改就OK的。以下是测试代码,有兴趣的朋友,可以联系我,我们一起把这个项目放到sourceforge上。
#!/usr/bin/perl
 
use XMLRPC::Transport::HTTP;
use Time::Local;
 
XMLRPC::Transport::HTTP::CGI
-> dispatch_to('Process')
-> handle;
 

package Process;
 
 
 
sub ListProcesses {
my ($self) = @_;
 
@procs = sort { $b->{'cpu'} <=> $a->{'cpu'} } &list_processes();
@procs = grep { !$hide{$_->{'user'}} } @procs;
@procs = grep { $_->{'user'} eq $remote_user } @procs if ($user_processes_only);
$x =  "<processes>\n";
foreach $pr (@procs) {
 $p = $pr->{'pid'};
        $x .= "<proc>\n";
 $x .= "<pid>$p</pid>\n";
 $x .= "<user>$pr->{'user'}</user>\n";
 $x .= "<cpu>$pr->{'cpu'}</cpu>\n";
        $x .= "</proc>\n";
 }
$x .= "</processes>\n";
 
return $x ;
};
 
 
 

sub list_processes
{
local($pcmd, $line, $i, %pidmap, @plist, $dummy, @w, $_);
local $out = `ps V`;
if ($out =~ /version\s+(\d+)\./ && $1 >= 2 || $out =~ /version\s+\./) {
 # New version of ps, as found in redhat 6
 open(PS, "ps --cols 500 -eo user,ruser,group,rgroup,pid,ppid,pgid,pcpu,vsz,nice,etime,time,stime,tty,args 2>/dev/null |");
 $dummy = <PS>;
 for($i=0; $line=<PS>; $i++) {
  chop($line);
  $line =~ s/^\s+//g;
  eval { @w = split(/\s+/, $line, -1); };
  if ($@) {
   # Hit a split loop
   $i--; next;
   }
  if ($line =~ /ps -o user,ruser/) {
   # Skip process ID 0 or ps command
   $i--; next;
   }
  if (@_ && &indexof($w[4], @_) < 0) {
   # Not interested in this PID
   $i--; next;
   }
  $plist[$i]->{"pid"} = $w[4];
  $plist[$i]->{"ppid"} = $w[5];
  $plist[$i]->{"user"} = $w[0];
  $plist[$i]->{"cpu"} = "$w[7] %";
  $plist[$i]->{"size"} = "$w[8] kB";
  $plist[$i]->{"time"} = $w[11];
  $plist[$i]->{"_stime"} = $w[12];
  $plist[$i]->{"nice"} = $w[9];
  $plist[$i]->{"args"} = @w<15 ? "defunct" : join(' ', @w[14..$#w]);
  $plist[$i]->{"_group"} = $w[2];
  $plist[$i]->{"_ruser"} = $w[1];
  $plist[$i]->{"_rgroup"} = $w[3];
  $plist[$i]->{"_pgid"} = $w[6];
  $plist[$i]->{"_tty"} = $w[13] =~ /\?/ ? $text{'edit_none'} : "/dev/$w[12]";
  }
 close(PS);
 }
return @plist;
}
分享到:
评论

相关推荐

    webmin-1.690-1.noarch.rpm

    webmin-1.690-1.noarch.rpm webmin-1.690-1.noarch.rpm

    webmin-1.930.tar.gz

    `webmin-1.930.tar.gz` 是Webmin的一个版本压缩包,版本号为1.930。这个文件是用`.tar.gz`格式打包的,这是一种在Linux和Unix系统中常见的文件压缩方法。 首先,我们来详细了解一下`.tar.gz`这种文件格式。`.tar`是...

    webmin-2.021 及其相关依赖包

    webmin-2.021 及其相关依赖包 依赖包 perl-5.16.3-297.el7.x86_64.rpm perl-Carp-1.26-244.el7.noarch.rpm perl-constant-1.27-2.el7.noarch.rpm perl-Digest-1.17-245.el7.noarch.rpm perl-Digest-MD5-2.52-3....

    webmin-1.340-1.noarch.rpm

    webmin-1.340-1.noarch.rpm

    webmin-1.880.tar.gz

    这款工具的最新版本为"webmin-1.880.tar.gz",这表明它是一个源码包,需要编译安装在系统上。 首先,让我们深入了解Webmin的核心功能。Webmin提供了丰富的系统管理模块,包括用户和群组管理、文件系统管理、网络...

    webmin-1.620.tar.gz

    linux资源 linux webmin软件

    webmin-1.520-1.noarch.rpm

    webmin-1.520-1.noarch.rpm

    webmin-1.930-1.noarch.rpm

    webmin包 webmin-1.930-1.noarch.rpm

    webmin-1.941.tar.gz

    webmin压缩包,用与在web端口对数据进行访问的工具,免费开源。 Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的...

    webmin-1.250.tar.gz

    Webmin-1.250是Webmin的一个特定版本,提供了一系列改进和新特性。 在Linux环境中,`.tar.gz` 文件是一种常见的归档和压缩格式。`webmin-1.250.tar.gz` 是Webmin 1.250版本的源代码包,它首先通过`.tar` 命令将所有...

    WEBMIN-1.570

    标题中的"WEBMIN-1.570"指的是Webmin的1.570版本,这通常代表着软件的最新更新或稳定版。描述中提到的“官方下载”意味着这是一个安全可靠的来源,用户可以放心下载安装。同时,提供的"里面有安装说明"表明压缩包内...

    webmin-1.740.tar.gz

    linux系统管理平台 webmin-1.740.tar.gz

    webmin-1.310-1.noarch

    webmin-1.310-1.noarch Linux服务器架设与管理软件 webmin-1.310-1.noarch Linux服务器架设与管理软件

    webmin-1.831.tar.gz

    "webmin-1.831.tar.gz" 文件是一个包含了Webmin 1.831版本的源代码压缩包,方便用户进行安装和部署。 Webmin 的主要特点和功能包括: 1. **图形化界面**:Webmin 提供了一个直观的Web界面,使得复杂的系统管理任务...

    webmin-1.170

    "webmin-1.170" 标题表明这是Webmin的一个特定版本,版本号为1.170,这通常意味着它包含了该软件在发布时的所有修复、改进和新功能。 描述中提到的".tar.gz" 后缀,这是一种常见的Linux档案格式,由“tar”工具打包...

    webmin-1.400.tar.gz

    这个"webmin-1.400.tar.gz"文件是一个针对Linux系统的Webmin的源码包,版本号为1.400。`.tar.gz`文件格式是Linux常用的压缩格式,它结合了`tar`(用于打包多个文件)和`gzip`(用于压缩)两种工具的功能。 在Linux...

    webmin-1.090-1.noarch.rpm

    在linux下高效架设服务器,可以优先选择使用webmin来设置哦!效果很好,功能强大,易于安装。终端下执行即可。

    webmin-1.954-1.noarch.rpm

    Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIX、HPUX、...

    webmin-1.410-1.noarch.rpm

    the network server management for linux

Global site tag (gtag.js) - Google Analytics