测试基本上和我想得一样。方法是修改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.930.tar.gz` 是Webmin的一个版本压缩包,版本号为1.930。这个文件是用`.tar.gz`格式打包的,这是一种在Linux和Unix系统中常见的文件压缩方法。 首先,我们来详细了解一下`.tar.gz`这种文件格式。`.tar`是...
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.880.tar.gz",这表明它是一个源码包,需要编译安装在系统上。 首先,让我们深入了解Webmin的核心功能。Webmin提供了丰富的系统管理模块,包括用户和群组管理、文件系统管理、网络...
linux资源 linux webmin软件
webmin-1.520-1.noarch.rpm
webmin包 webmin-1.930-1.noarch.rpm
webmin压缩包,用与在web端口对数据进行访问的工具,免费开源。 Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的...
Webmin-1.250是Webmin的一个特定版本,提供了一系列改进和新特性。 在Linux环境中,`.tar.gz` 文件是一种常见的归档和压缩格式。`webmin-1.250.tar.gz` 是Webmin 1.250版本的源代码包,它首先通过`.tar` 命令将所有...
标题中的"WEBMIN-1.570"指的是Webmin的1.570版本,这通常代表着软件的最新更新或稳定版。描述中提到的“官方下载”意味着这是一个安全可靠的来源,用户可以放心下载安装。同时,提供的"里面有安装说明"表明压缩包内...
linux系统管理平台 webmin-1.740.tar.gz
webmin-1.310-1.noarch Linux服务器架设与管理软件 webmin-1.310-1.noarch Linux服务器架设与管理软件
"webmin-1.831.tar.gz" 文件是一个包含了Webmin 1.831版本的源代码压缩包,方便用户进行安装和部署。 Webmin 的主要特点和功能包括: 1. **图形化界面**:Webmin 提供了一个直观的Web界面,使得复杂的系统管理任务...
"webmin-1.170" 标题表明这是Webmin的一个特定版本,版本号为1.170,这通常意味着它包含了该软件在发布时的所有修复、改进和新功能。 描述中提到的".tar.gz" 后缀,这是一种常见的Linux档案格式,由“tar”工具打包...
这个"webmin-1.400.tar.gz"文件是一个针对Linux系统的Webmin的源码包,版本号为1.400。`.tar.gz`文件格式是Linux常用的压缩格式,它结合了`tar`(用于打包多个文件)和`gzip`(用于压缩)两种工具的功能。 在Linux...
在linux下高效架设服务器,可以优先选择使用webmin来设置哦!效果很好,功能强大,易于安装。终端下执行即可。
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIX、HPUX、...
the network server management for linux