__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/perl
#
# A simple configuration file builder based on questions listed in
# its own configuration file. It would certainly be easy to use this
# for other (non-snmp) programs as well.
#
use Getopt::Std;
use Term::ReadLine;
use IO::File;
use Data::Dumper;
use File::Copy;
if ($^O eq 'MSWin32') {
eval 'require Win32::Registry;';
if ($@) {
print "\nWarning: Perl module Win32::Registry is not installed. This module is\n";
print " required to read the SNMPSHAREPATH and SNMPCONFPATH values from \n";
print " the registry. To use snmpconf without the module you need to\n";
print " define SNMPSHAREPATH and SNMPCONFPATH as environment variables\n";
print " or use the -c and -I command line options.\n";
}
}
# globals
%tokenitems=qw(line 1 info 1 comment 1);
%arrayitems=qw(question 1 validanswer 1);
# default folder for snmpconf-data
if (defined(&my_getenv("SNMPSHAREPATH"))) {
$opts{'c'} = &my_getenv("SNMPSHAREPATH") . "/snmpconf-data";
}
else {
$opts{'c'} = "/usr/share/snmp/snmpconf-data";
}
# default config file path
if (defined(&my_getenv("SNMPCONFPATH"))) {
$confpath = &my_getenv("SNMPCONFPATH");
}
else {
$confpath = "/usr/share/snmp";
}
# home environment variable
if (defined(&my_getenv("HOME"))) {
$home = &my_getenv("HOME") . "/.snmp";
}
else {
$home = "(HOME dir - n/a)";
}
# read the argument string
getopts("qadhfc:piI:r:R:g:G", \%opts);
# display help
if ($opts{'h'}) {
print "$0 [options] [FILETOCREATE...]\n";
print "options:\n";
print " -f overwrite existing files without prompting\n";
print " -i install created files into $confpath.\n";
print " -p install created files into $home.\n";
print " -I DIR install created files into DIR.\n";
print " -a Don't ask any questions, just read in current\n";
print " current .conf files and comment them\n";
print " -r all|none Read in all or none of the .conf files found.\n";
print " -R file,... Read in a particular list of .conf files.\n";
print " -g GROUP Ask a series of GROUPed questions.\n";
print " -G List known GROUPs.\n";
print " -c conf_dir use alternate configuration directory.\n";
print " -q run more quietly with less advice.\n";
print " -d turn on debugging output.\n";
print " -D turn on debugging dumper output.\n";
exit;
}
# setup terminal interface.
$ENV{'PERL_RL'}='o=0' if (!exists($ENV{'PERL_RL'}));
$term = new Term::ReadLine 'snmpconf';
# read in configuration file set
read_config_files($opts{'c'}, \%filetypes);
debug(my_Dumper(\%filetypes));
if ($opts{'G'}) {
Print("\nKnown GROUPs of tokens:\n\n");
foreach my $group (keys(%groups)) {
print " $group\n";
}
Print("\n");
exit;
}
#
# Expand the search path in case it contains multiple directories
# separated by : (Unix) or ; (Win32)
#
my $ENV_SEPARATOR = ':';
if ($^O eq 'MSWin32') {
$ENV_SEPARATOR = ';';
}
my @searchpath = split(/$ENV_SEPARATOR/, $confpath);
push @searchpath, "/etc/snmp";
push @searchpath, ".";
push @searchpath, "$home";
# Remove trailing /'s or \'s
for (my $i=0; $i <= $#searchpath; $i++) {
$searchpath[$i] =~ /(.*?)([\/\\])*$/;
$searchpath[$i] = $1;
}
# Determine persistent directory. Order of preference:
#
# file in SNMP_PERSISTENT_FILE environment variable
# directory defined by persistentDir snmp.conf variable
# directory in SNMP_PERSISTENT_DIR environment variable
# default PERSISTENT_DIRECTORY directory
my $persistentDir = "";
my $persistentFile = "";
# SNMP_PERSISTENT_FILE environment variable
if (defined(&my_getenv("SNMP_PERSISTENT_FILE"))) {
$persistentFile = &my_getenv("SNMP_PERSISTENT_FILE");
debug ("persistent file: SNMP_PERSISTENT_FILE environment variable set\n");
}
# snmp.conf persistentDir
if (!($persistentDir) && !($persistentFile)) {
foreach my $i (@searchpath) {
debug ("Searching file $i/snmp.conf for persistentDir\n");
my $temp = get_persistentDir("$i/snmp.conf");
if ($temp) {
debug("persistent directory: set to $temp in $i/snmp.conf\n");
$persistentDir = $temp;
last;
}
}
}
# SNMP_PERSISTENT_DIR environment variable
if (!($persistentDir) && !($persistentFile)) {
if (&my_getenv("SNMP_PERSISTENT_DIR")) {
$persistentDir = &my_getenv("SNMP_PERSISTENT_DIR");
debug ("persistent directory: SNMP_PERSISTENT_DIR environment variable set\n");
}
}
# PERSISTENT_DIRECTORY default variable
if (!($persistentDir) && !($persistentFile)) {
$persistentDir = "/var/lib/net-snmp";
debug ("persistent directory: Using default value\n");
}
# Rebuild search path without persistent folder
# Note: persistent file handled in Find existing
# files to possibly read in section
if ($persistentDir) {
# Remove trailing /'s or \'s
$persistentDir =~ /(.*?)([\/\\])*$/;
$persistentDir = $1;
debug ("persistent directory: $persistentDir\n");
my @searchpath_old = @searchpath;
@searchpath = ();
foreach my $path_temp (@searchpath_old) {
if ($path_temp eq $persistentDir) {
debug("skipping persistent directory $path_temp\n");
next;
}
push @searchpath, $path_temp;
}
}
# Reset $confpath to the first path
$confpath = $searchpath[0];
#
# Find existing files to possibly read in.
#
push @searchpath, $opts{I} if ($opts{I});
foreach my $i (@searchpath) {
debug("searching $i\n");
foreach my $ft (keys(%filetypes)) {
if ("$i/$ft" eq $persistentFile) {
debug("skipping persistent file $i/$ft\n");
next;
}
debug("searching for $i/$ft\n");
$knownfiles{"$i/$ft"} = $ft if (-f "$i/$ft");
my $localft = $ft;
$localft =~ s/.conf/.local.conf/;
$knownfiles{"$i/$localft"} = $ft if (-f "$i/$localft");
}
}
#
# Ask the user if they want them to be read in and read them
#
if (keys(%knownfiles)) {
my @files;
if (defined($opts{'r'})) {
if ($opts{'r'} eq "all" || $opts{'r'} eq "a") {
@files = keys(%knownfiles);
} elsif ($opts{'r'} ne "none" && $opts{'r'} ne "n") {
print "unknown argument to -r: $opts{'r'}\n";
exit(1);
}
} elsif(defined($opts{'R'})) {
@files = split(/\s*,\s*/,$opts{'R'});
foreach my $i (@files) {
my $x = $i;
$x =~ s/.*\/([^\/]+)$/$1/;
$knownfiles{$i} = $x;
}
Print("reading: ", join(",",@files),"\n");
} else {
@files = display_menu(-head => "The following installed configuration files were found:\n",
-tail => "Would you like me to read them in? Their content will be merged with the\noutput files created by this session.\n\nValid answer examples: \"all\", \"none\",\"3\",\"1,2,5\"\n",
-multiple => 1,
-question => 'Read in which',
-defaultvalue => 'all',
sort keys(%knownfiles));
}
foreach my $i (@files) {
debug("reading $i\n");
read_config($i, $knownfiles{$i});
}
}
if ($opts{'g'}) {
my @groups = split(/,:\s/,$opts{'g'});
foreach my $group (@groups) {
do_group($group);
}
} elsif ($#ARGV >= 0) {
#
# loop through requested files.
#
foreach my $i (@ARGV) {
if (!defined($filetypes{$i})) {
warn "invalid file: $i\n";
} else {
if ($opts{'a'}) {
$didfile{$i} = 1;
} else {
build_file($term, $i, $filetypes{$i});
}
}
}
} else {
#
# ask user to select file type to operate on.
#
while(1) {
my $line = display_menu(-head => "I can create the following types of configuration files for you.\nSelect the file type you wish to create:\n(you can create more than one as you run this program)\n",
-question => 'Select File',
-otheranswers => ['quit'],
-mapanswers => { 'q' => 'quit' },
keys(%filetypes));
last if ($line eq "quit");
debug("file selected: $line\n");
build_file($term, $line, $filetypes{$line});
}
}
#
# Write out the results to the output files.
#
output_files(\%filetypes, $term);
#
# Display the files that have been created for the user.
#
Print("\n\nThe following files were created:\n\n");
@didfiles = keys(%didfile);
foreach my $i (@didfiles) {
if ($didfile{$i} ne "1") {
if ($opts{'i'} || $opts{'I'}) {
$opts{'I'} = "$confpath" if (!$opts{'I'});
if (! (-d "$opts{'I'}") && ! (mkdir ("$opts{'I'}", 0755))) {
print "\nCould not create $opts{'I'} directory: $!\n";
print ("File $didfile{$i} left in current directory\n");
}
else {
move ("$opts{'I'}/$i", "$opts{'I'}/$i.bak") if (-f "$opts{'I'}/$i");
if (move ("$didfile{$i}", "$opts{'I'}")) {
print(" $didfile{$i} installed in $opts{'I'}\n");
}
else {
print "\nCould not move file $didfile{$i} to $opts{'I'}/$i: $!\n";
print ("File $didfile{$i} left in current directory\n");
}
}
} elsif ($opts{'p'}) {
if (! (-d "$home") && ! (mkdir ("$home", 0755))) {
print "\nCould not create $home directory: $!\n";
print ("File $didfile{$i} left in current directory\n");
}
else {
move ("$home/$i", "$home/$i.bak") if (-f "$home/$i");
if (move ("$didfile{$i}", "$home")) {
print(" $didfile{$i} installed in $home\n");
}
else {
print "\nCould not move file $didfile{$i} to $home: $!\n";
print ("File $didfile{$i} left in current directory\n");
}
}
} else {
Print(" $didfile{$i} ",
($i ne $didfile{$i})?"[ from $i specifications]":" ","\n");
if ($opts{'d'}) {
open(I,$didfile{$i});
debug(" " . join(" ",<I>) . "\n");
close(I);
}
}
}
}
if (!$opts{'p'} && !$opts{'i'} && !$opts{'I'}) {
Print("\nThese files should be moved to $confpath if you
want them used by everyone on the system. In the future, if you add
the -i option to the command line I'll copy them there automatically for you.
Or, if you want them for your personal use only, copy them to
$home . In the future, if you add the -p option to the
command line I'll copy them there automatically for you.
");
}
###########################################################################
# Functions
###########################################################################
sub Print {
print @_ if (!$opts{'q'});
}
#
# handle a group of questions
#
sub get_yn_maybe {
my $question = shift;
my $ans = "y";
if ($question ne "") {
$ans = get_answer($term, $question,
valid_answers(qw(yes y no n)), 'y');
}
return ($ans =~ /^y/)?1:0;
}
sub do_group {
my $group = shift;
die "no such group $group\n" if (!$groups{$group});
foreach my $token (@{$groups{$group}}) {
if ($token->[0] eq "message") {
Print ("$token->[1] $token->[2]\n");
} elsif ($token->[0] eq "subgroup") {
do_group($token->[1]) if (get_yn_maybe($token->[2]));
} elsif (defined($tokenmap{$token->[1]})) {
if (get_yn_maybe($token->[2])) {
do {
do_line($token->[1], $tokenmap{$token->[1]});
} until ($token->[0] ne "multiple" ||
get_answer($term, "Do another $token->[1] line?",
valid_answers(qw(yes y no n)), 'y')
=~ /n/);
}
} elsif (defined($filetypes{$token->[1]})) {
$didfile{$token->[1]} = 1;
} else {
die "invalid member $token->[1] of group $group\n";
}
}
}
#
# build a particular type of file by operating on sections
#
sub build_file {
my ($term, $filename, $fileconf) = @_;
$didfile{$filename} = 1;
my (@lines);
while(1) {
my $line = display_menu(-head => "The configuration information which can be put into $filename is divided\ninto sections. Select a configuration section for $filename\nthat you wish to create:\n",
-otheranswers => ['finished'],
-mapanswers => { 'f' => 'finished' },
-question => "Select section",
-numeric => 1,
map { $_->{'title'}[0] } @$fileconf);
return @lines if ($line eq "finished");
do_section($fileconf->[$line-1]);
}
}
#
# configure a particular section by operating on token types
#
sub do_section {
my $confsect = shift;
my @lines;
while(1) {
Print ("\nSection: $confsect->{'title'}[0]\n");
Print ("Description:\n");
Print (" ", join("\n ",@{$confsect->{'description'}}),"\n");
my $line =
display_menu(-head => "Select from:\n",
-otheranswers => ['finished','list'],
-mapanswers => { 'f' => 'finished',
'l' => 'list' },
-question => 'Select section',
-descriptions => [map { $confsect->{$_}{info}[0] }
@{$confsect->{'thetokens'}}],
@{$confsect->{'thetokens'}});
return @lines if ($line eq "finished");
if ($line eq "list") {
print "Lines defined for section \"$confsect->{title}[0]\" so far:\n";
foreach my $i (@{$confsect->{'thetokens'}}) {
if ($#{$confsect->{$i}{'results'}} >= 0) {
print " ",join("\n ",@{$confsect->{$i}{'results'}}),"\n";
}
}
next;
}
do_line($line, $confsect->{$line});
}
return;
}
#
# Ask all the questions related to a particular line type
#
sub do_line {
my $token = shift;
my $confline = shift;
my (@answers, $counter, $i);
# debug(my_Dumper($confline));
Print ("\nConfiguring: $token\n");
Print ("Description:\n ",join("\n ",@{$confline->{'info'}}),"\n\n");
for($i=0; $i <= $#{$confline->{'question'}}; $i++) {
if (defined($confline->{'question'}[$i]) &&
$confline->{'question'}[$i] ne "") {
my $q = $confline->{'question'}[$i];
$q =~ s/\$(\d+)/$answers[$1]/g;
debug("after: $term, $q, ",$confline->{'validanswer'}[$i],"\n");
$answers[$i] = get_answer($term, $q,
$confline->{'validanswer'}[$i]);
$answers[$i] =~ s/\"/\\\"/g;
$answers[$i] = '"' . $answers[$i] . '"' if ($answers[$i] =~ /\s/);
}
}
if ($#{$confline->{'line'}} == -1) {
my ($i,$line);
for($i=0; $i <= $#{$confline->{'question'}}; $i++) {
next if (!defined($confline->{'question'}[$i]) ||
$confline->{'question'}[$i] eq "");
$line .= " \$" . $i;
}
push @{$confline->{'line'}}, $line;
}
foreach my $line (@{$confline->{'line'}}) {
my $finished = $line;
debug("preline: $finished\n");
debug("answers: ",my_Dumper(\@answers));
$finished =~ s/\$(\d+)/$answers[$1]/g;
if ($line =~ s/^eval\s+//) {
debug("eval: $finished\n");
$finished = eval $finished;
debug("eval results: $finished\n");
}
$finished = $token . " " . $finished;
Print ("\nFinished Output: $finished\n");
push @{$confline->{'results'}},$finished;
}
}
#
# read all sets of config files in the various subdirectories.
#
sub read_config_files {
my $readdir = shift;
my $filetypes = shift;
opendir(DH, $readdir) || die "no such directory $readdir, did you run make install?\n";
my $dir;
my $configfilename="snmpconf-config";
while(defined($dir = readdir(DH))) {
next if ($dir =~ /^\./);
next if ($dir =~ /CVS/);
debug("dir entry: $dir\n");
if (-d "$readdir/$dir" && -f "$readdir/$dir/$configfilename") {
my $conffile;
# read the top level configuration inforamation about the direcotry.
open(I, "$readdir/$dir/$configfilename");
while(<I>) {
$conffile = $1 if (/forconffile: (.*)/);
}
close(I);
# no README informatino.
if ($conffile eq "") {
print STDERR "Warning: No 'forconffile' information in $readdir/$dir/$configfilename\n";
next;
}
# read all the daat in the directory
$filetypes->{$conffile} = read_config_items("$readdir/$dir", $conffile);
} else {
# no README informatino.
print STDERR "Warning: No $configfilename file found in $readdir/$dir\n";
}
}
closedir DH;
}
#
# read each configuration file in a directory
#
sub read_config_items {
my $itemdir = shift;
my $type = shift;
opendir(ITEMS, $itemdir);
my $file;
my @results;
while(defined($file = readdir(ITEMS))) {
next if ($file =~ /~$/);
next if ($file =~ /^snmpconf-config$/);
if (-f "$itemdir/$file") {
my $res = read_config_item("$itemdir/$file", $type);
if (scalar(keys(%$res)) > 0) {
push @results, $res;
}
}
}
closedir(ITEMS);
return \@results;
}
#
# mark a list of tokens as a special "group"
#
sub read_config_group {
my ($fh, $group, $type) = @_;
my $line;
debug("handling group $group\n");
push (@{$groups{$group}},['filetype', $type]);
while($line = <$fh>) {
chomp($line);
next if ($line =~ /^\s*$/);
next if ($line =~ /^\#/);
return $line if ($line !~ /^(single|multiple|message|filetype|subgroup)/);
my ($type, $token, $rest) = ($line =~ /^(\w+)\s+([^\s]+)\s*(.*)/);
debug ("reading group $group : $type -> $token -> $rest\n");
push (@{$groups{$group}}, [$type, $token, $rest]);
}
return;
}
#
# Parse one file
#
sub read_config_item {
my $itemfile = shift;
my $itemcount;
my $type = shift;
my $fh = new IO::File($itemfile);
return if (!defined($fh));
my (%results, $curtoken);
debug("tokenitems: ", my_Dumper(\%tokenitems));
topwhile:
while($line = <$fh>) {
next if ($line =~ /^\s*\#/);
my ($token, $rest) = ($line =~ /^(\w+)\s+(.*)/);
next if (!defined($token) || !defined($rest));
while ($token eq 'group') {
# handle special group list
my $next = read_config_group($fh, $rest,$type);
if ($next) {
($token, $rest) = ($next =~ /^(\w+)\s+(.*)/);
} else {
next topwhile;
}
}
debug("token: $token => $rest\n");
if ($token eq 'steal') {
foreach my $stealfrom (keys(%{$results{$rest}})) {
if (!defined($results{$curtoken}{$stealfrom})) {
@{$results{$curtoken}{$stealfrom}} =
@{$results{$rest}{$stealfrom}};
}
}
} elsif (defined($tokenitems{$token})) {
if (!defined($curtoken)) {
die "error in configuration file $itemfile, no token set\n";
}
$rest =~ s/^\#//;
push @{$results{$curtoken}{$token}},$rest;
} elsif (defined($arrayitems{$token})) {
if (!defined($curtoken)) {
die "error in configuration file $itemfile, no token set\n";
}
my ($num, $newrest) = ($rest =~ /^(\d+)\s+(.*)/);
if (!defined($num) || !defined($newrest)) {
warn "invalid config line: $line\n";
} else {
$results{$curtoken}{$token}[$num] = $newrest;
}
} elsif ($token =~ /^token\s*$/) {
$rest = lc($rest);
$curtoken = $rest;
if (! exists $results{$curtoken}{'defined'}) {
push @{$results{'thetokens'}}, $curtoken;
$results{$curtoken}{'defined'} = 1;
}
$tokenmap{$curtoken} = $results{$curtoken};
debug("current token set to $token\n");
} else {
push @{$results{$token}},$rest;
}
}
return \%results;
}
sub debug {
print @_ if ($opts{'d'});
}
sub output_files {
my $filetypes = shift;
my $term = shift;
foreach my $ft (keys(%$filetypes)) {
next if (!$didfile{$ft});
my $outputf = $ft;
if (-f $outputf && !$opts{'f'}) {
print "\nError: An $outputf file already exists in this directory.\n\n";
my $ans = get_answer($term,"'overwrite', 'skip', 'rename' or 'append'? ",valid_answers(qw(o overwrite r rename s skip a append)));
next if ($ans =~ /^(s|skip)$/i);
if ($ans =~ /^(a|append)/) {
$outputf = ">$outputf";
} elsif ($ans =~ /^(r|rename)$/i) {
# default to rename for error conditions
$outputf = $term->readline("Save to what new file name instead (or 'skip')? ");
}
}
$didfile{$ft} = $outputf;
open(O,">$outputf") || warn "couldn't write to $outputf\n";
print O "#" x 75,"\n";
print O "#\n# $ft\n";
print O "#\n# - created by the snmpconf configuration program\n#\n";
foreach my $sect (@{$filetypes->{$ft}}) {
my $secthelp = 0;
foreach my $token (@{$sect->{'thetokens'}}) {
if ($#{$sect->{$token}{'results'}} >= 0) {
if ($secthelp++ == 0) {
print O "#" x 75,"\n# SECTION: ",
join("\n# ", @{$sect->{title}}), "\n#\n";
print O "# ", join("\n# ",@{$sect->{description}}),
"\n";
}
print O "\n# $token: ",
join("\n# ",@{$sect->{$token}{info}}), "\n\n";
foreach my $result (@{$sect->{$token}{'results'}}) {
print O "$result\n";
}
}
}
print O "\n\n\n";
}
if ($#{$unknown{$ft}} > -1) {
print O "#\n# Unknown directives read in from other files by snmpconf\n#\n";
foreach my $unknown (@{$unknown{$ft}}) {
print O $unknown,"\n";
}
}
close(O);
}
}
sub get_answer {
my ($term, $question, $regexp, $defaultval) = @_;
$question .= " (default = $defaultval)" if (defined($defaultval) && $defaultval ne "");
$question .= ": ";
my $ans = $term->readline($question);
return $defaultval if ($ans eq "" && defined($defaultval) &&
$defaultval ne "");
while (!(!defined($regexp) ||
$regexp eq "" ||
$ans =~ /$regexp/)) {
print "invalid answer! It must match this regular expression: $regexp\n";
$ans = $term->readline($question);
}
return $defaultval if ($ans eq "" && defined($defaultval) &&
$defaultval ne "");
return $ans;
}
sub valid_answers {
my @list;
foreach $i (@_) {
push @list, $i if ($i);
}
return "^(" . join("|",@list) . ")\$";
}
sub read_config {
my $file = shift;
my $filetype = shift;
return if (!defined($filetypes{$filetype}));
if (! -f $file) {
warn "$file does not exist\n";
return;
}
open(I,$file);
while(<I>) {
next if (/^\s*\#/);
next if (/^\s*$/);
chomp;
my ($token, $rest) = /^\s*(\w+)\s+(.*)/;
$token = lc($token);
next if (defined($alllines{$_})); # drop duplicate lines
if (defined($tokenmap{$token})) {
push @{$tokenmap{$token}{'results'}},$_;
} else {
push @{$unknown{$filetype}},$_;
}
$alllines{$_}++;
}
close(I);
}
sub display_menu {
my %config;
while ($#_ > -1 && $_[0] =~ /^-/) {
my $key = shift;
$config{$key} = shift;
}
my $count=1;
print "\n" if (!defined($config{'-dense'}));
if ($config{'-head'}) {
print $config{'-head'};
print "\n" if (!defined($config{'-dense'}));
}
my @answers = @_;
my @list;
if (defined($config{'-descriptions'}) &&
ref($config{'-descriptions'}) eq "ARRAY") {
@list = @{$config{'-descriptions'}}
} else {
@list = @_;
}
foreach my $i (@list) {
printf " %2d: $i\n", $count++ if ($i);
}
print "\n" if (!defined($config{'-dense'}));
if (defined($config{'-otheranswers'})) {
if (ref($config{'-otheranswers'}) eq 'ARRAY') {
print "Other options: ", join(", ",
@{$config{'-otheranswers'}}), "\n";
push @answers, @{$config{'-otheranswers'}};
push @answers, keys(%{$config{'-mapanswers'}});
} else {
my $maxlen = 0;
push @answers,keys(%{$config{'-otheranswers'}});
foreach my $i (keys(%{$config{'-otheranswers'}})) {
$maxlen = length($i) if (length($i) > $maxlen);
}
foreach my $i (keys(%{$config{'-otheranswers'}})) {
printf(" %-" . $maxlen . "s: %s\n", $i,
$config{'-otheranswers'}{$i});
}
}
print "\n" if (!defined($config{'-dense'}));
}
if ($config{'-tail'}) {
print $config{'-tail'};
print "\n" if (!defined($config{'-dense'}));
}
if (defined($config{'-question'})) {
while(1) {
my $numexpr;
if ($config{'-multiple'}) {
$numexpr = '[\d\s,]+|all|a|none|n';
} else {
$numexpr = '\d+';
}
push @answers,"" if ($config{'-defaultvalue'});
$ans = get_answer($term, $config{'-question'},
valid_answers($numexpr,@answers),
$config{'-defaultvalue'});
if ($config{'-mapanswers'}{$ans}) {
$ans = $config{'-mapanswers'}{$ans};
}
if ($ans =~ /^$numexpr$/) {
if ($config{'-multiple'}) {
my @list = split(/\s*,\s*/,$ans);
my @ret;
$count = 0;
foreach my $i (@_) {
$count++;
if ($ans eq "all" || $ans eq "a"
|| grep(/^$count$/,@list)) {
push @ret, $i;
}
}
return @ret;
} else {
if ($ans <= 0 || $ans > $#_+1) {
warn "invalid selection: $ans [must be 1-" .
($#_+1) . "]\n";
} else {
return $ans if ($config{'-numeric'});
$count = 0;
foreach my $i (@_) {
$count++;
if ($ans eq $count) {
return $i;
}
}
}
}
} else {
return $ans;
}
}
}
}
sub my_Dumper {
if ($opts{'D'}) {
return Dumper(@_);
} else {
return "\n";
}
}
sub get_persistentDir {
my $file = shift;
my $result = 0;
if (! -f $file) {
return 0;
}
open(I,$file);
while(<I>) {
next if (/^\s*\#/);
next if (/^\s*$/);
chomp;
my ($token, $rest) = /^\s*(\w+)\s+(.*)/;
if (lc($token) eq "persistentdir") {
$result = $rest;
}
next;
}
close(I);
return $result;
}
# Usage: &win32_reg_read("key", "value")
# Example: &win32_reg_read("SOFTWARE\\Net-SNMP","SNMPSHAREPATH");
# Returns: Value if found in HKCU or HCLM. Otherwise an empty string.
sub win32_reg_read {
my $sub_key = shift;
my $value = shift;
require Win32::Registry;
my ($hkey, %key_values, $temp, $no_warn);
# Try HKCU first
$no_warn = $HKEY_CURRENT_USER;
if ($HKEY_CURRENT_USER->Open($sub_key, $hkey))
{
$hkey->GetValues(\%key_values);
foreach $temp (sort keys %key_values) {
if ($temp eq $value) {
return $key_values{$temp}[2];
}
}
$hkey->Close();
}
# Try HKLM second
$no_warn = $HKEY_LOCAL_MACHINE;
if ($HKEY_LOCAL_MACHINE->Open($sub_key, $hkey))
{
$hkey->GetValues(\%key_values);
foreach $temp (sort keys %key_values) {
if ($temp eq $value) {
return $key_values{$temp}[2];
}
}
$hkey->Close();
}
return "";
}
# Usage: &my_getenv("key")
# Example: &my_getenv("SNMPSHAREPATH");
# Returns: Unix: Environment variable value (undef if not defined)
# Win32: HKCU\Software\Net-SNMP\(key) or
# Win32: HKLM\Software\Net-SNMP\(key) or
# Win32: Environment variable value (undef if not defined)
sub my_getenv {
my $key = shift;
# Unix
if ($^O ne 'MSWin32') {
return $ENV{$key};
}
# Windows
else {
my $temp = &win32_reg_read("SOFTWARE\\Net-SNMP","$key");
if ($temp ne "") {
return $temp;
}
else {
return $ENV{$key};
}
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| GET | File | 14.71 KB | 0755 |
|
| Magick-config | File | 1.23 KB | 0755 |
|
| MagickCore-config | File | 1.24 KB | 0755 |
|
| MagickWand-config | File | 1.25 KB | 0755 |
|
| File | 383.67 KB | 0755 |
|
|
| Wand-config | File | 1.23 KB | 0755 |
|
| [ | File | 40.52 KB | 0755 |
|
| a2p | File | 105.32 KB | 0755 |
|
| aclocal | File | 35.87 KB | 0755 |
|
| aclocal-1.13 | File | 35.87 KB | 0755 |
|
| addr2line | File | 28.42 KB | 0755 |
|
| agentxtrap | File | 19.16 KB | 0755 |
|
| animate | File | 7.04 KB | 0755 |
|
| ar | File | 61.22 KB | 0755 |
|
| arch | File | 32.3 KB | 0755 |
|
| as | File | 377.36 KB | 0755 |
|
| aspell | File | 163.35 KB | 0755 |
|
| at | File | 1.01 KB | 0755 |
|
| atq | File | 1.01 KB | 0755 |
|
| atrm | File | 1.02 KB | 0755 |
|
| autoconf | File | 14.42 KB | 0755 |
|
| autoheader | File | 8.33 KB | 0755 |
|
| autom4te | File | 31.43 KB | 0755 |
|
| automake | File | 246.44 KB | 0755 |
|
| automake-1.13 | File | 246.44 KB | 0755 |
|
| autoreconf | File | 20.57 KB | 0755 |
|
| autoscan | File | 16.72 KB | 0755 |
|
| autoupdate | File | 33.08 KB | 0755 |
|
| awk | File | 418.54 KB | 0755 |
|
| base64 | File | 36.48 KB | 0755 |
|
| basename | File | 28.35 KB | 0755 |
|
| bash | File | 941.93 KB | 0755 |
|
| bashbug-64 | File | 6.8 KB | 0755 |
|
| batch | File | 137 B | 0755 |
|
| bison | File | 393.34 KB | 0755 |
|
| bunzip2 | File | 31.89 KB | 0755 |
|
| bzcat | File | 31.89 KB | 0755 |
|
| bzcmp | File | 2.08 KB | 0755 |
|
| bzdiff | File | 2.08 KB | 0755 |
|
| bzgrep | File | 1.64 KB | 0755 |
|
| bzip2 | File | 31.89 KB | 0755 |
|
| bzip2recover | File | 15.24 KB | 0755 |
|
| bzless | File | 1.23 KB | 0755 |
|
| bzmore | File | 1.23 KB | 0755 |
|
| c++ | File | 754.59 KB | 0750 |
|
| c++filt | File | 27.92 KB | 0755 |
|
| c2ph | File | 35.75 KB | 0755 |
|
| c89 | File | 224 B | 0750 |
|
| c99 | File | 215 B | 0750 |
|
| cagefs_enter.proxied | File | 1.03 KB | 0755 |
|
| cal | File | 36.8 KB | 0755 |
|
| captoinfo | File | 64.26 KB | 0755 |
|
| cat | File | 52.81 KB | 0755 |
|
| catchsegv | File | 3.26 KB | 0755 |
|
| cc | File | 750.59 KB | 0750 |
|
| chcon | File | 61.46 KB | 0755 |
|
| chgrp | File | 61.33 KB | 0755 |
|
| chmod | File | 57.21 KB | 0755 |
|
| chown | File | 61.36 KB | 0755 |
|
| chrt | File | 32.17 KB | 0755 |
|
| cksum | File | 32.38 KB | 0755 |
|
| cldetect | File | 10.35 KB | 0755 |
|
| clear | File | 7.02 KB | 0755 |
|
| cmp | File | 44.14 KB | 0755 |
|
| col | File | 23.88 KB | 0755 |
|
| colcrt | File | 11.29 KB | 0755 |
|
| colrm | File | 23.78 KB | 0755 |
|
| column | File | 27.99 KB | 0755 |
|
| comm | File | 36.55 KB | 0755 |
|
| compare | File | 11.09 KB | 0755 |
|
| composite | File | 7.04 KB | 0755 |
|
| conjure | File | 7.04 KB | 0755 |
|
| convert | File | 7.04 KB | 0755 |
|
| cp | File | 151.55 KB | 0755 |
|
| cpan | File | 4.97 KB | 0755 |
|
| cpp | File | 754.58 KB | 0755 |
|
| crontab | File | 1.49 KB | 0755 |
|
| crontab.cagefs | File | 49.13 KB | 0755 |
|
| csplit | File | 48.82 KB | 0755 |
|
| curl | File | 153 KB | 0755 |
|
| cut | File | 40.61 KB | 0755 |
|
| date | File | 60.74 KB | 0755 |
|
| dbiprof | File | 6.15 KB | 0755 |
|
| dbiproxy | File | 5.35 KB | 0755 |
|
| dd | File | 73.14 KB | 0755 |
|
| delv | File | 39.98 KB | 0755 |
|
| df | File | 102.55 KB | 0755 |
|
| diff | File | 195.46 KB | 0755 |
|
| diff3 | File | 60.65 KB | 0755 |
|
| dig | File | 146.97 KB | 0755 |
|
| dir | File | 114.85 KB | 0755 |
|
| dircolors | File | 40.44 KB | 0755 |
|
| dirname | File | 28.31 KB | 0755 |
|
| display | File | 7.04 KB | 0755 |
|
| dltest | File | 11.05 KB | 0755 |
|
| du | File | 110.34 KB | 0755 |
|
| dvipdf | File | 1 KB | 0755 |
|
| echo | File | 32.31 KB | 0755 |
|
| egrep | File | 290 B | 0755 |
|
| enchant | File | 15.29 KB | 0755 |
|
| enchant-lsmod | File | 11.13 KB | 0755 |
|
| env | File | 28.33 KB | 0755 |
|
| eps2eps | File | 639 B | 0755 |
|
| eqn | File | 144.41 KB | 0755 |
|
| ex | File | 906.43 KB | 0755 |
|
| expand | File | 32.48 KB | 0755 |
|
| expr | File | 36.53 KB | 0755 |
|
| factor | File | 93.29 KB | 0755 |
|
| false | File | 28.26 KB | 0755 |
|
| fc-cache | File | 132 B | 0755 |
|
| fc-cache-64 | File | 15.45 KB | 0755 |
|
| fc-cat | File | 15.4 KB | 0755 |
|
| fc-conflist | File | 11.2 KB | 0755 |
|
| fc-list | File | 11.26 KB | 0755 |
|
| fc-match | File | 11.32 KB | 0755 |
|
| fc-pattern | File | 11.26 KB | 0755 |
|
| fc-query | File | 11.22 KB | 0755 |
|
| fc-scan | File | 11.27 KB | 0755 |
|
| fc-validate | File | 11.27 KB | 0755 |
|
| fgrep | File | 290 B | 0755 |
|
| file | File | 19.31 KB | 0755 |
|
| find | File | 194.62 KB | 0755 |
|
| find2perl | File | 23.06 KB | 0755 |
|
| flex | File | 318.07 KB | 0755 |
|
| flex++ | File | 318.07 KB | 0755 |
|
| flock | File | 23.88 KB | 0755 |
|
| fmt | File | 36.48 KB | 0755 |
|
| fold | File | 36.46 KB | 0755 |
|
| free | File | 19.33 KB | 0755 |
|
| freetype-config | File | 4.39 KB | 0755 |
|
| funzip | File | 31.38 KB | 0755 |
|
| g++ | File | 754.59 KB | 0750 |
|
| gawk | File | 418.54 KB | 0755 |
|
| gcc | File | 750.59 KB | 0750 |
|
| gcc-ar | File | 26.45 KB | 0755 |
|
| gcc-nm | File | 26.45 KB | 0755 |
|
| gcc-ranlib | File | 26.45 KB | 0755 |
|
| gcov | File | 311.45 KB | 0755 |
|
| gencat | File | 22.11 KB | 0755 |
|
| geoiplookup | File | 15.28 KB | 0755 |
|
| geoiplookup6 | File | 11.16 KB | 0755 |
|
| geqn | File | 144.41 KB | 0755 |
|
| getconf | File | 22.02 KB | 0755 |
|
| getent | File | 26.39 KB | 0755 |
|
| getopt | File | 15.38 KB | 0755 |
|
| ghostscript | File | 10.97 KB | 0755 |
|
| git | File | 1.46 MB | 0755 |
|
| git-receive-pack | File | 1.46 MB | 0755 |
|
| git-shell | File | 717.95 KB | 0755 |
|
| git-upload-archive | File | 1.46 MB | 0755 |
|
| git-upload-pack | File | 791.44 KB | 0755 |
|
| gm | File | 7.05 KB | 0755 |
|
| gmake | File | 178.47 KB | 0755 |
|
| gneqn | File | 271 B | 0755 |
|
| gnroff | File | 3.31 KB | 0755 |
|
| gpg | File | 732.4 KB | 0755 |
|
| gpg-agent | File | 289.74 KB | 0755 |
|
| gpg-error | File | 23.18 KB | 0755 |
|
| gpg-zip | File | 3.23 KB | 0755 |
|
| gpg2 | File | 732.4 KB | 0755 |
|
| gpgsplit | File | 48.88 KB | 0755 |
|
| gpgv | File | 345.38 KB | 0755 |
|
| gpgv2 | File | 345.38 KB | 0755 |
|
| gpic | File | 180.41 KB | 0755 |
|
| gprof | File | 98.41 KB | 0755 |
|
| grep | File | 155.3 KB | 0755 |
|
| groff | File | 81.63 KB | 0755 |
|
| grops | File | 140.85 KB | 0755 |
|
| grotty | File | 98.59 KB | 0755 |
|
| groups | File | 32.41 KB | 0755 |
|
| gs | File | 10.97 KB | 0755 |
|
| gsbj | File | 350 B | 0755 |
|
| gsdj | File | 352 B | 0755 |
|
| gsdj500 | File | 352 B | 0755 |
|
| gslj | File | 353 B | 0755 |
|
| gslp | File | 350 B | 0755 |
|
| gsnd | File | 277 B | 0755 |
|
| gsoelim | File | 32.59 KB | 0755 |
|
| gtar | File | 338.02 KB | 0755 |
|
| gtbl | File | 115.96 KB | 0755 |
|
| gtroff | File | 512.96 KB | 0755 |
|
| gunzip | File | 2.2 KB | 0755 |
|
| gzexe | File | 5.79 KB | 0755 |
|
| gzip | File | 98.44 KB | 0755 |
|
| h2ph | File | 27.65 KB | 0755 |
|
| h2xs | File | 59.15 KB | 0755 |
|
| head | File | 40.5 KB | 0755 |
|
| hexdump | File | 32.02 KB | 0755 |
|
| host | File | 127.02 KB | 0755 |
|
| hostid | File | 28.3 KB | 0755 |
|
| hostname | File | 15.41 KB | 0755 |
|
| hunspell | File | 53.09 KB | 0755 |
|
| icecast | File | 225.94 KB | 0755 |
|
| iconv | File | 58.14 KB | 0755 |
|
| id | File | 36.52 KB | 0755 |
|
| identify | File | 7.06 KB | 0755 |
|
| idn | File | 32.45 KB | 0755 |
|
| ifnames | File | 4.03 KB | 0755 |
|
| igawk | File | 3.11 KB | 0755 |
|
| import | File | 7.04 KB | 0755 |
|
| infocmp | File | 56.07 KB | 0755 |
|
| infotocap | File | 64.26 KB | 0755 |
|
| install | File | 139.59 KB | 0755 |
|
| instmodsh | File | 4.15 KB | 0755 |
|
| ionice | File | 23.86 KB | 0755 |
|
| ipcrm | File | 27.85 KB | 0755 |
|
| ipcs | File | 48.36 KB | 0755 |
|
| isosize | File | 23.83 KB | 0755 |
|
| ispell | File | 988 B | 0755 |
|
| isql | File | 31.69 KB | 0755 |
|
| iusql | File | 23.61 KB | 0755 |
|
| join | File | 48.75 KB | 0755 |
|
| kill | File | 32.82 KB | 0755 |
|
| ld | File | 982.58 KB | 0750 |
|
| ld.bfd | File | 982.58 KB | 0750 |
|
| ldd | File | 5.18 KB | 0755 |
|
| less | File | 154.53 KB | 0755 |
|
| lessecho | File | 11.11 KB | 0755 |
|
| lesskey | File | 16.66 KB | 0755 |
|
| lesspipe.sh | File | 2.24 KB | 0755 |
|
| lex | File | 318.07 KB | 0755 |
|
| libnetcfg | File | 15.36 KB | 0755 |
|
| libtool | File | 314.04 KB | 0755 |
|
| libtoolize | File | 76.8 KB | 0755 |
|
| link | File | 28.3 KB | 0755 |
|
| ln | File | 57.22 KB | 0755 |
|
| locale | File | 37.11 KB | 0755 |
|
| localedef | File | 318.31 KB | 0755 |
|
| logger | File | 28.63 KB | 0755 |
|
| login | File | 36.38 KB | 0755 |
|
| logname | File | 28.31 KB | 0755 |
|
| look | File | 11.27 KB | 0755 |
|
| lprsetup.sh | File | 5.34 KB | 0755 |
|
| ls | File | 114.85 KB | 0755 |
|
| lynx | File | 1.43 MB | 0755 |
|
| m4 | File | 151.17 KB | 0755 |
|
| File | 383.67 KB | 0755 |
|
|
| mailx | File | 383.67 KB | 0755 |
|
| make | File | 178.47 KB | 0755 |
|
| mcookie | File | 15.44 KB | 0755 |
|
| md5sum | File | 40.53 KB | 0755 |
|
| mdig | File | 44.2 KB | 0755 |
|
| mesg | File | 10.98 KB | 0755 |
|
| mkdir | File | 77.9 KB | 0755 |
|
| mkfifo | File | 61.59 KB | 0755 |
|
| mknod | File | 65.61 KB | 0755 |
|
| mktemp | File | 40.66 KB | 0755 |
|
| mogrify | File | 7.04 KB | 0755 |
|
| montage | File | 7.04 KB | 0755 |
|
| more | File | 40.15 KB | 0755 |
|
| mv | File | 127.3 KB | 0755 |
|
| my_print_defaults | File | 7.09 MB | 0755 |
|
| mysql | File | 10.25 MB | 0755 |
|
| mysql_config | File | 840 B | 0755 |
|
| mysql_config-64 | File | 5.13 KB | 0755 |
|
| mysqladmin | File | 8.96 MB | 0755 |
|
| mysqlbinlog | File | 10.86 MB | 0755 |
|
| mysqlcheck | File | 9.24 MB | 0755 |
|
| mysqldump | File | 9.32 MB | 0755 |
|
| mysqlimport | File | 8.95 MB | 0755 |
|
| mysqlshow | File | 8.91 MB | 0755 |
|
| namei | File | 27.95 KB | 0755 |
|
| nano | File | 201.08 KB | 0755 |
|
| neqn | File | 271 B | 0755 |
|
| net-snmp-config | File | 1.3 KB | 0755 |
|
| net-snmp-config-x86_64 | File | 29.46 KB | 0755 |
|
| net-snmp-create-v3-user | File | 2.98 KB | 0755 |
|
| nice | File | 32.32 KB | 0755 |
|
| nl | File | 40.6 KB | 0755 |
|
| nm | File | 41.39 KB | 0755 |
|
| nohup | File | 32.42 KB | 0755 |
|
| nproc | File | 32.37 KB | 0755 |
|
| nroff | File | 3.31 KB | 0755 |
|
| nslookup | File | 130.94 KB | 0755 |
|
| nsupdate | File | 64.99 KB | 0755 |
|
| numfmt | File | 64.71 KB | 0755 |
|
| objcopy | File | 227.34 KB | 0755 |
|
| objdump | File | 357.69 KB | 0755 |
|
| od | File | 64.81 KB | 0755 |
|
| odbc_config | File | 11.04 KB | 0755 |
|
| odbcinst | File | 27.69 KB | 0755 |
|
| openssl | File | 542.27 KB | 0755 |
|
| pango-list | File | 11.1 KB | 0755 |
|
| pango-querymodules-64 | File | 28.26 KB | 0755 |
|
| pango-view | File | 49.47 KB | 0755 |
|
| passwd | File | 1.02 KB | 0755 |
|
| paste | File | 32.34 KB | 0755 |
|
| patch | File | 147 KB | 0755 |
|
| pathchk | File | 32.31 KB | 0755 |
|
| pdf2dsc | File | 698 B | 0755 |
|
| pdf2ps | File | 909 B | 0755 |
|
| perl | File | 11.14 KB | 0755 |
|
| perl5.16.3 | File | 11.14 KB | 0755 |
|
| perlbug | File | 43.39 KB | 0755 |
|
| perldoc | File | 203 B | 0755 |
|
| perlivp | File | 10.52 KB | 0755 |
|
| perlml | File | 5.98 KB | 0755 |
|
| perlthanks | File | 43.39 KB | 0755 |
|
| pf2afm | File | 498 B | 0755 |
|
| pfbtopfa | File | 516 B | 0755 |
|
| pgawk | File | 418.63 KB | 0755 |
|
| pgrep | File | 27.67 KB | 0755 |
|
| php | File | 937 B | 0755 |
|
| pic | File | 180.41 KB | 0755 |
|
| piconv | File | 7.99 KB | 0755 |
|
| pinentry | File | 2.54 KB | 0755 |
|
| pinentry-curses | File | 49.19 KB | 0755 |
|
| ping | File | 1.02 KB | 0755 |
|
| pinky | File | 36.58 KB | 0755 |
|
| pkg-config | File | 44.38 KB | 0755 |
|
| pkill | File | 27.67 KB | 0755 |
|
| pl2pm | File | 4.42 KB | 0755 |
|
| pmap | File | 27.61 KB | 0755 |
|
| pod2html | File | 4 KB | 0755 |
|
| pod2latex | File | 10.1 KB | 0755 |
|
| pod2man | File | 13.26 KB | 0755 |
|
| pod2text | File | 10.75 KB | 0755 |
|
| pod2usage | File | 3.67 KB | 0755 |
|
| podchecker | File | 3.7 KB | 0755 |
|
| podselect | File | 2.55 KB | 0755 |
|
| post-grohtml | File | 187.55 KB | 0755 |
|
| pphs | File | 404 B | 0755 |
|
| pr | File | 65.11 KB | 0755 |
|
| pre-grohtml | File | 86.24 KB | 0755 |
|
| precat | File | 5.52 KB | 0755 |
|
| preunzip | File | 5.52 KB | 0755 |
|
| prezip | File | 5.52 KB | 0755 |
|
| prezip-bin | File | 11.05 KB | 0755 |
|
| printafm | File | 395 B | 0755 |
|
| printenv | File | 28.29 KB | 0755 |
|
| printf | File | 48.6 KB | 0755 |
|
| prove | File | 13.13 KB | 0755 |
|
| ps | File | 97.77 KB | 0755 |
|
| ps2ascii | File | 631 B | 0755 |
|
| ps2epsi | File | 2.69 KB | 0755 |
|
| ps2pdf | File | 272 B | 0755 |
|
| ps2pdf12 | File | 215 B | 0755 |
|
| ps2pdf13 | File | 215 B | 0755 |
|
| ps2pdf14 | File | 215 B | 0755 |
|
| ps2pdfwr | File | 1.07 KB | 0755 |
|
| ps2ps | File | 647 B | 0755 |
|
| ps2ps2 | File | 669 B | 0755 |
|
| psed | File | 52.08 KB | 0755 |
|
| pstruct | File | 35.75 KB | 0755 |
|
| ptx | File | 65.08 KB | 0755 |
|
| pwd | File | 32.45 KB | 0755 |
|
| pwdx | File | 11.27 KB | 0755 |
|
| pydoc | File | 78 B | 0755 |
|
| python | File | 6.98 KB | 0755 |
|
| python2 | File | 6.98 KB | 0755 |
|
| python2.7 | File | 6.98 KB | 0755 |
|
| ranlib | File | 61.22 KB | 0755 |
|
| raw | File | 15.27 KB | 0755 |
|
| readelf | File | 505.76 KB | 0755 |
|
| readlink | File | 40.82 KB | 0755 |
|
| realpath | File | 61.23 KB | 0755 |
|
| recode | File | 39.87 KB | 0755 |
|
| rename | File | 11.26 KB | 0755 |
|
| renice | File | 11.21 KB | 0755 |
|
| replace | File | 5.13 MB | 0755 |
|
| reset | File | 19.6 KB | 0755 |
|
| rev | File | 11.26 KB | 0755 |
|
| rm | File | 61.4 KB | 0755 |
|
| rmdir | File | 44.46 KB | 0755 |
|
| rnano | File | 201.08 KB | 0755 |
|
| rpcgen | File | 90.45 KB | 0755 |
|
| rsync | File | 484.2 KB | 0755 |
|
| run-with-aspell | File | 85 B | 0755 |
|
| runcon | File | 32.47 KB | 0755 |
|
| rvi | File | 906.43 KB | 0755 |
|
| rview | File | 906.43 KB | 0755 |
|
| s2p | File | 52.08 KB | 0755 |
|
| scl | File | 19.5 KB | 0755 |
|
| scl_enabled | File | 258 B | 0755 |
|
| scl_source | File | 1.83 KB | 0755 |
|
| scp | File | 89.23 KB | 0755 |
|
| screen | File | 464.08 KB | 0755 |
|
| script | File | 19.61 KB | 0755 |
|
| sdiff | File | 48.41 KB | 0755 |
|
| sed | File | 74.29 KB | 0755 |
|
| selectorctl | File | 7.63 KB | 0755 |
|
| seq | File | 48.48 KB | 0755 |
|
| setsid | File | 11.23 KB | 0755 |
|
| setterm | File | 27.48 KB | 0755 |
|
| sftp | File | 142 KB | 0755 |
|
| sh | File | 941.93 KB | 0755 |
|
| sha1sum | File | 36.57 KB | 0755 |
|
| sha224sum | File | 40.63 KB | 0755 |
|
| sha256sum | File | 40.63 KB | 0755 |
|
| sha384sum | File | 40.65 KB | 0755 |
|
| sha512sum | File | 40.64 KB | 0755 |
|
| shred | File | 52.95 KB | 0755 |
|
| shuf | File | 49.13 KB | 0755 |
|
| size | File | 32.35 KB | 0755 |
|
| skill | File | 23.62 KB | 0755 |
|
| slabtop | File | 19.52 KB | 0755 |
|
| sleep | File | 32.35 KB | 0755 |
|
| slogin | File | 756.39 KB | 0755 |
|
| snice | File | 23.62 KB | 0755 |
|
| snmpconf | File | 25.52 KB | 0755 |
|
| soelim | File | 32.59 KB | 0755 |
|
| sort | File | 114.95 KB | 0755 |
|
| spell | File | 122 B | 0755 |
|
| splain | File | 18.03 KB | 0755 |
|
| split | File | 69.47 KB | 0755 |
|
| sprof | File | 22.1 KB | 0755 |
|
| sqlite3 | File | 54.95 KB | 0755 |
|
| ssh | File | 756.39 KB | 0755 |
|
| ssh-add | File | 352.46 KB | 0755 |
|
| ssh-agent | File | 373.25 KB | 0111 |
|
| ssh-copy-id | File | 10.22 KB | 0755 |
|
| ssh-keygen | File | 409.38 KB | 0755 |
|
| ssh-keyscan | File | 430.7 KB | 0755 |
|
| stat | File | 77.19 KB | 0755 |
|
| stdbuf | File | 64.88 KB | 0755 |
|
| strace | File | 1009.2 KB | 0755 |
|
| stream | File | 7.04 KB | 0755 |
|
| strings | File | 28.43 KB | 0755 |
|
| strip | File | 227.34 KB | 0755 |
|
| stty | File | 68.61 KB | 0755 |
|
| sum | File | 36.55 KB | 0755 |
|
| sync | File | 28.3 KB | 0755 |
|
| tabs | File | 15.31 KB | 0755 |
|
| tac | File | 32.48 KB | 0755 |
|
| tail | File | 65.26 KB | 0755 |
|
| tailf | File | 23.88 KB | 0755 |
|
| tar | File | 338.02 KB | 0755 |
|
| taskset | File | 32.22 KB | 0755 |
|
| tbl | File | 115.96 KB | 0755 |
|
| tclsh | File | 7 KB | 0755 |
|
| tclsh8.5 | File | 7 KB | 0755 |
|
| tee | File | 32.38 KB | 0755 |
|
| test | File | 36.46 KB | 0755 |
|
| tic | File | 64.26 KB | 0755 |
|
| timeout | File | 53.31 KB | 0755 |
|
| tload | File | 15.38 KB | 0755 |
|
| tmpwatch | File | 27.87 KB | 0755 |
|
| toe | File | 15.43 KB | 0755 |
|
| top | File | 104.38 KB | 0755 |
|
| touch | File | 61.02 KB | 0755 |
|
| tput | File | 15.41 KB | 0755 |
|
| tr | File | 44.61 KB | 0755 |
|
| troff | File | 512.96 KB | 0755 |
|
| true | File | 28.26 KB | 0755 |
|
| truncate | File | 52.67 KB | 0755 |
|
| tset | File | 19.6 KB | 0755 |
|
| tsort | File | 36.47 KB | 0755 |
|
| tty | File | 28.29 KB | 0755 |
|
| tzselect | File | 7.17 KB | 0755 |
|
| uapi | File | 1.02 KB | 0755 |
|
| ul | File | 19.47 KB | 0755 |
|
| uname | File | 32.3 KB | 0755 |
|
| unexpand | File | 32.45 KB | 0755 |
|
| uniq | File | 44.71 KB | 0755 |
|
| unix-lpr.sh | File | 4.07 KB | 0755 |
|
| unlink | File | 28.3 KB | 0755 |
|
| unzip | File | 181.16 KB | 0755 |
|
| unzipsfx | File | 88.63 KB | 0755 |
|
| uptime | File | 11.22 KB | 0755 |
|
| users | File | 32.42 KB | 0755 |
|
| utmpdump | File | 15.45 KB | 0755 |
|
| vdir | File | 114.85 KB | 0755 |
|
| vi | File | 906.43 KB | 0755 |
|
| view | File | 906.43 KB | 0755 |
|
| vmstat | File | 31.48 KB | 0755 |
|
| watch | File | 24.15 KB | 0755 |
|
| wc | File | 40.67 KB | 0755 |
|
| wget | File | 408.96 KB | 0755 |
|
| whereis | File | 20.2 KB | 0755 |
|
| which | File | 23.77 KB | 0755 |
|
| who | File | 48.7 KB | 0755 |
|
| whoami | File | 28.3 KB | 0755 |
|
| word-list-compress | File | 11.03 KB | 0755 |
|
| x86_64-redhat-linux-c++ | File | 754.59 KB | 0750 |
|
| x86_64-redhat-linux-g++ | File | 754.59 KB | 0750 |
|
| x86_64-redhat-linux-gcc | File | 750.59 KB | 0750 |
|
| xargs | File | 60.91 KB | 0755 |
|
| xmlcatalog | File | 15.3 KB | 0755 |
|
| xmllint | File | 61.94 KB | 0755 |
|
| xmlwf | File | 24 KB | 0755 |
|
| xsltproc | File | 23.49 KB | 0755 |
|
| xsubpp | File | 4.45 KB | 0755 |
|
| yes | File | 28.3 KB | 0755 |
|
| zcat | File | 1.9 KB | 0755 |
|
| zcmp | File | 1.72 KB | 0755 |
|
| zdiff | File | 5.63 KB | 0755 |
|
| zegrep | File | 123 B | 0755 |
|
| zfgrep | File | 123 B | 0755 |
|
| zforce | File | 2.09 KB | 0755 |
|
| zgrep | File | 5.99 KB | 0755 |
|
| zip | File | 210.78 KB | 0755 |
|
| zipcloak | File | 98.1 KB | 0755 |
|
| zipgrep | File | 2.88 KB | 0755 |
|
| zipinfo | File | 181.16 KB | 0755 |
|
| zipnote | File | 93.73 KB | 0755 |
|
| zipsplit | File | 97.75 KB | 0755 |
|
| zless | File | 1.99 KB | 0755 |
|
| zmore | File | 2.79 KB | 0755 |
|
| znew | File | 5.22 KB | 0755 |
|
| zsoelim | File | 32.59 KB | 0755 |
|