Webmin-RPC 改造可行性证明
2008-01-03 14:08
281 查看
测试基本上和我想得一样。方法是修改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 = "/n";
foreach $pr (@procs) {
$p = $pr->{'pid'};
$x .= "/n";
$x .= "$p/n";
$x .= "$pr->{'user'}/n";
$x .= "$pr->{'cpu'}/n";
$x .= "/n";
}
$x .= "/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 = ;
for($i=0; $line=; $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;
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=477952
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 = "/n";
foreach $pr (@procs) {
$p = $pr->{'pid'};
$x .= "/n";
$x .= "$p/n";
$x .= "$pr->{'user'}/n";
$x .= "$pr->{'cpu'}/n";
$x .= "/n";
}
$x .= "/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 = ;
for($i=0; $line=; $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;
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=477952
相关文章推荐
- Webmin-RPC 改造可行性证明
- Webmin-RPC 改造可行性证明
- Webmin-RPC 改造可行性证明
- Webmin-RPC 改造可行性证明
- Webmin-RPC 改造可行性证明
- Webmin-RPC 改造可行性证明
- 使用XML-RPC来控制Webmin
- 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&&如果可行必定最优&&非证明最优性)的题)(K)
- DIY 无人机 ---- 硬件改造可行性论证
- 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&&如果可行必定最优&&非证明最优性)的题)(K)
- 使用XML-RPC来控制Webmin
- Thrift源码修改,改造RPC,支持多Processor[java版]
- leetcode中第三题Longest Substring问题解答算法的可行性证明
- 关于完全背包问题用二进制优化的可行性证明
- Thrift源码修改,改造RPC,支持多Processor模式(C#客户端调用)
- 使用XML-RPC来控制Webmin
- 使用XML-RPC来控制Webmin
- 证明DataReader分页的可行性
- 使用XML-RPC来控制Webmin
- leetcode中第一题twosum问题解答算法的可行性证明