__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/perl
# nagios: -epn
# needrestart - Restart daemons after library updates.
#
# Authors:
# Thomas Liske <thomas@fiasko-nw.net>
#
# Copyright Holder:
# 2013 - 2022 (C) Thomas Liske [http://fiasko-nw.net/~thomas/]
#
# License:
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this package; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
use Cwd qw(realpath);
use Getopt::Std;
use NeedRestart;
use NeedRestart::UI;
use NeedRestart::Interp;
use NeedRestart::Kernel;
use NeedRestart::uCode;
use NeedRestart::Utils;
use Sort::Naturally;
use Locale::TextDomain 'needrestart';
use List::Util qw(sum);
use warnings;
use strict;
$|++;
$Getopt::Std::STANDARD_HELP_VERSION++;
my $LOGPREF = '[main]';
my $is_systemd = -d q(/run/systemd/system);
my $is_runit = -e q(/run/runit.stopit);
my $is_tty = (-t *STDERR || -t *STDOUT || -t *STDIN);
my $is_vm;
my $is_container;
if($is_systemd && -x q(/usr/bin/systemd-detect-virt)) {
# check if we are inside of a vm
my $ret = system(qw(/usr/bin/systemd-detect-virt --vm --quiet));
unless($? == -1 || $? & 127) {
$is_vm = ($? >> 8) == 0;
}
# check if we are inside of a container
$ret = system(qw(/usr/bin/systemd-detect-virt --container --quiet));
unless($? == -1 || $? & 127) {
$is_container = ($? >> 8) == 0;
}
}
elsif(eval "use ImVirt; 1;") {
require ImVirt;
ImVirt->import();
my $imvirt = ImVirt::imv_get(ImVirt->IMV_PROB_DEFAULT);
$is_vm = $imvirt ne ImVirt->IMV_PHYSICAL;
$is_container = $imvirt eq ImVirt->IMV_CONTAINER;
}
elsif (-r "/proc/1/environ") {
# check if we are inside of a container (fallback)
local $/;
open(HENV, '<', '/proc/1/environ');
$is_container = scalar(grep {/^container=/;} unpack("(Z*)*", <HENV>));
close(HENV)
}
sub HELP_MESSAGE {
print <<USG;
Usage:
needrestart [-vn] [-c <cfg>] [-r <mode>] [-f <fe>] [-u <ui>] [-bkl]
-v be more verbose
-q be quiet
-m <mode> set detail level
e (e)asy mode
a (a)dvanced mode
u (u)buntu mode for the APT hook, see /usr/share/doc/needrestart/README.Ubuntu
-n set default answer to 'no'
-c <cfg> config filename
-r <mode> set restart mode
l (l)ist only
i (i)nteractive restart
a (a)utomatically restart
-b enable batch mode
-p enable nagios plugin mode
-f <fe> override debconf frontend (DEBIAN_FRONTEND, debconf(7))
-t <seconds> tolerate interpreter process start times within this value
-u <ui> use preferred UI package (-u ? shows available packages)
By using the following options only the specified checks are performed:
-k check for obsolete kernel
-l check for obsolete libraries
-w check for obsolete CPU microcode
--help show this help
--version show version information
USG
}
sub VERSION_MESSAGE {
print <<LIC;
needrestart $NeedRestart::VERSION - Restart daemons after library updates.
Authors:
Thomas Liske <thomas\@fiasko-nw.net>
Copyright Holder:
2013 - 2022 (C) Thomas Liske [http://fiasko-nw.net/~thomas/]
Upstream:
https://github.com/liske/needrestart
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
LIC
#/
}
sub get_cgroup_unit {
my $pid = shift;
my $verbosity = shift;
if(open(HCGROUP, qq(/proc/$pid/cgroup))) {
my ($value) = map {
chomp;
my ($id, $type, $value) = split(/:/);
if($id != 0 && $type ne q(name=systemd)) {
();
}
else {
($value);
}
} <HCGROUP>;
close(HCGROUP);
return $value;
}
return;
}
our %nrconf = (
verbosity => 1,
hook_d => '/etc/needrestart/hook.d',
notify_d => '/etc/needrestart/notify.d',
restart_d => '/etc/needrestart/restart.d',
sendnotify => 1,
restart => 'i',
defno => 0,
ui_mode => 'a',
systemctl_combine => 0,
blacklist => [],
blacklist_interp => [],
blacklist_rc => [],
blacklist_mappings => [],
override_rc => {},
override_cont => {},
skip_mapfiles => -1,
interpscan => 1,
kernelhints => 1,
kernelfilter => qr(.),
ucodehints => 1,
q(nagios-status) => {
services => 1,
kernel => 2,
ucode => 2,
sessions => 2,
containers => 1,
},
has_pam_systemd => 1,
tolerance => 2,
);
# backup ARGV (required for Debconf)
my @argv = @ARGV;
our $opt_c = '/etc/needrestart/needrestart.conf';
our $opt_v;
our $opt_r;
our $opt_n;
our $opt_m;
our $opt_b;
our $opt_f;
our $opt_k;
our $opt_l;
our $opt_p;
our $opt_q;
our $opt_t;
our $opt_u;
our $opt_w;
unless(getopts('c:vr:nm:bf:klpqt:u:w')) {
HELP_MESSAGE;
exit 1;
}
# Ubuntu: adjust the defaults when called through APT
if (defined($opt_m) and $opt_m eq 'u') {
$nrconf{restart} = undef;
}
# disable exiting and STDOUT in Getopt::Std for further use of getopts
$Getopt::Std::STANDARD_HELP_VERSION = undef;
# restore ARGV
@ARGV = @argv;
die "ERROR: Could not read config file '$opt_c'!\n" unless(-r $opt_c || $opt_b);
# override debconf frontend
$ENV{DEBIAN_FRONTEND} = $opt_f if($opt_f);
my $debian_noninteractive = (exists($ENV{DEBIAN_FRONTEND}) && $ENV{DEBIAN_FRONTEND} eq 'noninteractive');
# be quiet
if($opt_q) {
$nrconf{verbosity} = 0;
}
# be verbose
elsif($opt_v) {
$nrconf{verbosity} = 2;
}
# slurp config file
print STDERR "$LOGPREF eval $opt_c\n" if($nrconf{verbosity} > 1);
eval do {
local $/;
open my $fh, $opt_c or die "ERROR: $!\n";
my $cfg = <$fh>;
close($fh);
$cfg;
};
die "Error parsing $opt_c: $@" if($@);
if (exists($ENV{NEEDRESTART_UI})) {
$nrconf{ui} = $ENV{NEEDRESTART_UI};
}
# fallback to stdio on verbose mode
$nrconf{ui} = qq(NeedRestart::UI::stdio) if($nrconf{verbosity} > 1);
$opt_m = $nrconf{ui_mode} unless(defined($opt_m));
die "ERROR: Unknown UI mode '$opt_m'!\n" unless($opt_m =~ /^(e|a|u)$/);
if ($opt_m eq 'u') {
if(defined $nrconf{restart}) {
print "Disabling Ubuntu mode, explicit restart mode configured";
$opt_m = $nrconf{ui_mode};
} elsif (defined $nrconf{ui}) {
print "Disabling Ubuntu mode, explicit UI configured";
$opt_m = $nrconf{ui_mode};
$nrconf{restart} = 'i';
} else {
$nrconf{restart} = 'a';
$nrconf{ui} = 'NeedRestart::UI::Ubuntu';
}
}
die "Hook directory '$nrconf{hook_d}' is invalid!\n" unless(-d $nrconf{hook_d} || $opt_b);
$opt_r = $ENV{NEEDRESTART_MODE} if(!defined($opt_r) && exists($ENV{NEEDRESTART_MODE}));
$opt_r = $nrconf{restart} unless(defined($opt_r));
die "ERROR: Unknown restart option '$opt_r'!\n" unless($opt_r =~ /^(l|i|a)$/);
$is_tty = 0 if($opt_r eq 'i' && $debian_noninteractive);
$opt_r = 'l' if(!$is_tty && $opt_r eq 'i');
$opt_r = 'l' if($opt_m eq 'e');
$opt_t = $nrconf{tolerance} unless(defined($opt_t));
$nrconf{defno}++ if($opt_n);
$opt_b++ if($opt_p);
# print version in verbose mode
print STDERR "$LOGPREF needrestart v$NeedRestart::VERSION\n" if($nrconf{verbosity} > 1);
# running mode (user or root)
my $uid = $<;
if($uid) {
if($opt_p) {
print "UNKN - This plugin needs to be run as root!\n";
exit 3;
}
print STDERR "$LOGPREF running in user mode\n" if($nrconf{verbosity} > 1);
}
else {
print STDERR "$LOGPREF running in root mode\n" if($nrconf{verbosity} > 1);
}
# get current runlevel, fallback to '2'
my $runlevel = `who -r` || '';
chomp($runlevel);
$runlevel = 2 unless($runlevel =~ s/^.+run-level (\S)\s.+$/$1/);
# get UI
if(defined($opt_u)) {
if ($opt_u eq '?') {
print STDERR join("\n\t", __(q(Available UI packages:)), needrestart_ui_list($nrconf{verbosity}, $nrconf{ui}))."\n";
exit 0;
}
else {
$nrconf{ui} = $opt_u;
}
}
if (!$is_tty) {
$nrconf{ui} = 'NeedRestart::UI::Stdio';
}
my $ui = ($opt_b ? NeedRestart::UI->new(0) : needrestart_ui($nrconf{verbosity}, $nrconf{ui}));
die "Error: no UI class available!\n" unless(defined($ui));
# Disable UI interactiveness
$ui->interactive(0) if ($ui->can("interactive") && $debian_noninteractive);
# enable/disable checks
unless(defined($opt_k) || defined($opt_l) || defined($opt_w)) {
$opt_k = ($uid ? undef : 1);
$opt_l = 1;
$opt_w = ($uid ? undef : $nrconf{ucodehints});
}
sub parse_lsbinit($) {
my $rc = '/etc/init.d/'.shift;
# ignore upstart-job magic
if(-l $rc && readlink($rc) eq '/lib/init/upstart-job') {
print STDERR "$LOGPREF ignoring $rc since it is a converted upstart job\n" if($nrconf{verbosity} > 1);
return ();
}
open(HLSB, '<', $rc) || die "Can't open $rc: $!\n";
my %lsb;
my $found_lsb;
my %chkconfig;
my $found_chkconfig;
while(my $line = <HLSB>) {
chomp($line);
unless($found_chkconfig) {
if($line =~ /^# chkconfig: (\d+) /) {
$chkconfig{runlevels} = $1;
$found_chkconfig++
}
}
elsif($line =~ /^# (\S+): (.+)$/) {
$chkconfig{lc($1)} = $2;
}
unless($found_lsb) {
$found_lsb++ if($line =~ /^### BEGIN INIT INFO/);
next;
}
elsif($line =~ /^### END INIT INFO/) {
last;
}
$lsb{lc($1)} = $2 if($line =~ /^# ([^:]+):\s+(.+)$/);
}
# convert chkconfig tags to LSB tags
if($found_chkconfig && !$found_lsb) {
print STDERR "$LOGPREF $rc is missing LSB tags, found chkconfig tags instead\n" if($nrconf{verbosity} > 1);
$found_lsb++;
$lsb{pidfiles} = [$chkconfig{pidfile}];
$lsb{q(default-start)} = $chkconfig{runlevels};
}
unless($found_lsb) {
print STDERR "WARNING: $rc has no LSB tags!\n" unless(%lsb);
return ();
}
# pid file heuristic
unless(exists($lsb{pidfiles})) {
my $found = 0;
my %pidfiles;
while(my $line = <HLSB>) {
if($line =~ m@(\S*/run/[^/]+.pid)@ && -r $1) {
$pidfiles{$1}++;
$found++;
}
}
$lsb{pidfiles} = [keys %pidfiles] if($found);
}
close(HLSB);
return %lsb;
}
print STDERR "$LOGPREF systemd detected\n" if($nrconf{verbosity} > 1 && $is_systemd);
print STDERR "$LOGPREF vm detected\n" if($nrconf{verbosity} > 1 && $is_vm);
print STDERR "$LOGPREF container detected\n" if($nrconf{verbosity} > 1 && $is_container);
sub systemd_refuse_restart {
my $svc = shift;
my $systemctl = nr_fork_pipe($nrconf{verbosity} > 1, qq(systemctl), qq(show), qq(--property=RefuseManualStop), $svc);
my $ret = <$systemctl>;
close($systemctl);
if($ret && $ret =~ /^RefuseManualStop=yes/) {
print STDERR "$LOGPREF systemd refuses restarts of $svc\n" if($nrconf{verbosity} > 1);
return 1;
}
return 0;
}
my @systemd_restart;
sub restart_cmd($) {
my $rc = shift;
my $restcmd = "$nrconf{restart_d}/$rc";
if(-x $restcmd) {
print STDERR "$LOGPREF using restart.d file $rc\n" if($nrconf{verbosity} > 1);
($restcmd);
}
elsif($rc =~ /.+\.service$/) {
if($nrconf{systemctl_combine}) {
push(@systemd_restart, $rc);
();
}
else {
(qw(systemctl restart), $rc);
}
}
else {
if($is_systemd) {
if($nrconf{systemctl_combine}) {
push(@systemd_restart, qq($rc.service));
();
}
else {
(qw(systemctl restart), qq($rc.service));
}
}
elsif($is_runit && -d qq(/etc/sv/$rc)) {
if(-e qq(/etc/service/$rc)) {
(qw(sv restart), $rc);
}
else {
(q(service), $rc, q(restart));
}
}
else {
(q(invoke-rc.d), $rc, q(restart));
}
}
}
# map UID to username (cached)
my %uidcache;
sub uid2name($) {
my $uid = shift;
return $uidcache{$uid} if(exists($uidcache{$uid}));
return $uidcache{$uid} = getpwuid($uid) || $uid;
}
my %nagios = (
# kernel
kstr => q(unknown),
kret => 3,
kperf => q(U),
# uCode
mstr => q(unknown),
mret => 3,
mperf => q(U),
# services
sstr => q(unknown),
sret => 3,
sperf => q(U),
# sessions
ustr => q(unknown),
uret => 3,
uperf => q(U),
);
print "NEEDRESTART-VER: $NeedRestart::VERSION\n" if($opt_b && !$opt_p);
my %restart;
my %sessions;
my @guests;
my @easy_hints;
if(defined($opt_l)) {
my @ign_pids=($$, getppid());
# inspect only pids
my $ptable = nr_ptable();
# find session parent
sub findppid($@) {
my $uid = shift;
my ($pid, @pids) = @_;
if($ptable->{$pid}->{ppid} == 1) {
return $pid
if($ptable->{$pid}->{uid} == $uid);
return undef;
}
foreach my $pid (@pids) {
my $ppid = &findppid($uid, $pid);
return $ppid if($ppid);
}
return $pid;
}
$ui->progress_prep(scalar keys %$ptable, __ 'Scanning processes...');
my %stage2;
for my $pid (sort {$a <=> $b} keys %$ptable) {
$ui->progress_step;
# user-mode: skip foreign processes
next if($uid && $ptable->{$pid}->{uid} != $uid);
# skip myself
next if(grep {$pid == $_} @ign_pids);
my $restart = 0;
my $exe = nr_readlink($pid);
# ignore kernel threads
next unless(defined($exe));
# orphaned binary
$restart++ if (defined($exe) && $exe =~ s/ \(deleted\)$//); # Linux
$restart++ if (defined($exe) && $exe =~ s/^\(deleted\)//); # Linux VServer
print STDERR "$LOGPREF #$pid uses obsolete binary $exe\n" if($restart && $nrconf{verbosity} > 1);
# ignore blacklisted binaries
next if(grep { $exe =~ /$_/; } @{$nrconf{blacklist}});
# Sync $exe with the initial value from Proc::ProcessTable to prevent race
# conditions in later checks.
if(defined($ptable->{$pid}->{exec})) {
$exe = $ptable->{$pid}->{exec};
}
# Proc::ProcessTable's exec field is undef if the file is not accessible in
# the root mountns, so the value of $exe is used instead.
else {
$ptable->{$pid}->{exec} = $exe;
}
# read file mappings (Linux 2.0+)
unless($restart) {
if(open(HMAP, '<', "/proc/$pid/maps")) {
while(<HMAP>) {
chomp;
my ($maddr, $mperm, $moffset, $mdev, $minode, $path) = split(/\s+/, $_, 6);
# skip special handles and non-executable mappings
next unless(defined($path) && $minode != 0 && $path ne '' && $mperm =~ /x/);
# skip special device paths
next if(scalar grep { $path =~ /$_/; } @{$nrconf{blacklist_mappings}});
# removed executable mapped files
if($path =~ s/ \(deleted\)$// || # Linux
$path =~ s/^\(deleted\)//) { # Linux VServer
print STDERR "$LOGPREF #$pid uses deleted $path\n" if($nrconf{verbosity} > 1);
$restart++;
last;
}
# check for outdated lib mappings
unless($nrconf{skip_mapfiles} == 1) {
$maddr =~ s/^0+([^-])/$1/;
$maddr =~ s/-0+(.)/-$1/;
my @paths = ("/proc/$pid/map_files/$maddr", "/proc/$pid/root/$path");
my ($testp) = grep { -e $_; } @paths;
unless($testp) {
unless($nrconf{skip_mapfiles} == -1) {
print STDERR "$LOGPREF #$pid uses non-existing $path\n" if($nrconf{verbosity} > 1);
$restart++;
last;
}
next;
}
# get on-disk info
my ($sdev, $sinode) = stat($testp);
my @sdevs = (
# glibc gnu_dev_* definition from sysmacros.h
sprintf("%02x:%02x", (($sdev >> 8) & 0xfff) | (($sdev >> 32) & ~0xfff), (($sdev & 0xff) | (($sdev >> 12) & ~0xff))),
# Traditional definition of major(3) and minor(3)
sprintf("%02x:%02x", $sdev >> 8, $sdev & 0xff),
# kFreeBSD: /proc/<pid>/maps does not contain device IDs
qq(00:00)
);
# Don't compare device numbers on anon filesystems
# w/o a backing device (like OpenVZ's simfs).
my $major = (($sdev >> 8) & 0xfff) | (($sdev >> 32) & ~0xfff);
$mdev = "00:00"
if ($major == 0 || $major == 144 || $major == 145 || $major == 146);
# compare maps content vs. on-disk
unless($minode eq $sinode && ((grep {$mdev eq $_} @sdevs) ||
# BTRFS breaks device ID mapping completely...
# ignoring unnamed device IDs for now
$mdev =~ /^00:/)) {
print STDERR "$LOGPREF #$pid uses obsolete $path\n" if($nrconf{verbosity} > 1);
$restart++;
last;
}
}
}
close(HMAP);
}
else {
print STDERR "$LOGPREF #$pid could not open maps: $!\n" if($nrconf{verbosity} > 1);
}
}
unless($restart || !$nrconf{interpscan}) {
$restart++ if(needrestart_interp_check($nrconf{verbosity} > 1, $pid, $exe, $nrconf{blacklist_interp}, $opt_t));
}
# handle containers (LXC, docker, etc.)
next if($restart && needrestart_cont_check($nrconf{verbosity} > 1, $pid, $exe));
# restart needed?
next unless($restart);
# handle user sessions
if($ptable->{$pid}->{ttydev} ne '' && (!$is_systemd || !$nrconf{has_pam_systemd})) {
my $ttydev = realpath( $ptable->{$pid}->{ttydev} );
print STDERR "$LOGPREF #$pid part of user session: uid=$ptable->{$pid}->{uid} sess=$ttydev\n" if($nrconf{verbosity} > 1);
push(@{ $sessions{ $ptable->{$pid}->{uid} }->{ $ttydev }->{ $ptable->{$pid}->{fname} } }, $pid);
# add session processes to stage2 only in user mode
$stage2{$pid} = $exe if($uid);
next;
}
# find parent process
my $ppid = $ptable->{$pid}->{ppid};
if($ppid != $pid && $ppid > 1 && !$uid) {
print STDERR "$LOGPREF #$pid is a child of #$ppid\n" if($nrconf{verbosity} > 1);
if($uid && $ptable->{$ppid}->{uid} != $uid) {
print STDERR "$LOGPREF #$ppid is a foreign process\n" if($nrconf{verbosity} > 1);
$stage2{$pid} = $exe;
}
else {
unless(exists($stage2{$ppid})) {
my $pexe = nr_readlink($ppid);
# ignore kernel threads
next unless(defined($pexe));
$stage2{$ppid} = $pexe;
}
}
}
else {
print STDERR "$LOGPREF #$pid is not a child\n" if($nrconf{verbosity} > 1 && !$uid);
$stage2{$pid} = $exe;
}
}
$ui->progress_fin;
if(scalar keys %stage2 && !$uid) {
$ui->progress_prep(scalar keys %stage2, __ 'Scanning candidates...');
PIDLOOP: foreach my $pid (sort {$a <=> $b} keys %stage2) {
$ui->progress_step;
# skip myself
next if(grep {$pid == $_} @ign_pids);
my $exe = nr_readlink($pid);
$exe =~ s/ \(deleted\)$//; # Linux
$exe =~ s/^\(deleted\)//; # Linux VServer
print STDERR "$LOGPREF #$pid exe => $exe\n" if($nrconf{verbosity} > 1);
# try to find interpreter source file
($exe) = (needrestart_interp_source($nrconf{verbosity} > 1, $pid, $exe), $exe);
# ignore blacklisted binaries
next if(grep { $exe =~ /$_/; } @{$nrconf{blacklist}});
if($is_systemd) {
# systemd manager
if($pid == 1 && $exe =~ m@^(/usr)?/lib/systemd/systemd@) {
print STDERR "$LOGPREF #$pid is systemd manager\n" if($nrconf{verbosity} > 1);
$restart{q(systemd-manager)}++;
next;
}
# get unit name from /proc/<pid>/cgroup
my $unit = get_cgroup_unit($pid, $nrconf{verbosity});
next unless (defined($unit));
if($unit =~ m@/user-(\d+)\.slice/session-(\d+)\.scope@) {
print STDERR "$LOGPREF #$pid part of user session: uid=$1 sess=$2\n" if($nrconf{verbosity} > 1);
push(@{ $sessions{$1}->{"session #$2"}->{ $ptable->{$pid}->{fname} } }, $pid);
next;
}
if($unit =~ m@/user\@(\d+)\.service@) {
print STDERR "$LOGPREF #$pid part of user manager service: uid=$1\n" if($nrconf{verbosity} > 1);
push(@{ $sessions{$1}->{'user manager service'}->{ $ptable->{$pid}->{fname} } }, $pid);
next;
}
if($unit =~ m@/machine.slice/machine.qemu(.*).scope@) {
for my $cmdlineidx (0 .. $#{$ptable->{$pid}->{cmdline}} ) {
if ( ${$ptable->{$pid}->{cmdline}}[$cmdlineidx] eq "-name") {
foreach ( split(/,/, ${$ptable->{$pid}->{cmdline}}[$cmdlineidx+1]) ) {
if ( index($_, "guest=") == 0 ) {
my @namearg = split(/=/, $_, 2);
if ($#{namearg} == 1) {
print STDERR "$LOGPREF #$pid detected as VM guest '$namearg[1]' in group '$unit'\n" if($nrconf{verbosity} > 1);
push(@guests, __x("'{name}' with pid {pid}", name => $namearg[1], pid=>$pid) );
}
next PIDLOOP;
}
}
}
}
print STDERR "$LOGPREF #$pid detected as VM guest with unknown name in group '$unit'\n" if($nrconf{verbosity} > 1);
push(@guests, __x("'Unknown VM' with pid {pid}", pid=>$pid) );
next;
}
my $rc;
if($unit =~ m@/([^/]+\.service)$@) {
$rc = $1;
}
else {
print STDERR "$LOGPREF #$pid unexpected cgroup '$unit'\n" if($nrconf{verbosity} > 1);
}
if($rc) {
print STDERR "$LOGPREF #$pid is $rc\n" if($nrconf{verbosity} > 1);
$restart{$rc}++;
next;
}
# did not get the unit name, yet - try systemctl status
print STDERR "$LOGPREF /proc/$pid/cgroup: $!\n" if($nrconf{verbosity} > 1 && $!);
print STDERR "$LOGPREF trying systemctl status\n" if($nrconf{verbosity} > 1);
my $systemctl = nr_fork_pipe($nrconf{verbosity} > 1, qq(systemctl), qq(-n), qq(0), qq(--full), qq(status), $pid);
my $ret = <$systemctl>;
close($systemctl);
if(defined($ret) && $ret =~ /([^\s]+\.service)( |$)/) {
my $s = $1;
print STDERR "$LOGPREF #$pid is $s\n" if($nrconf{verbosity} > 1);
$restart{$s}++;
$s =~ s/\.service$//;
delete($restart{$s});
next;
}
}
else {
# sysv init
if($pid == 1 && $exe =~ m@^/sbin/init@) {
print STDERR "$LOGPREF #$pid is sysv init\n" if($nrconf{verbosity} > 1);
$restart{q(sysv-init)}++;
next;
}
}
my $pkg;
foreach my $hook (nsort <$nrconf{hook_d}/*>) {
print STDERR "$LOGPREF #$pid running $hook\n" if($nrconf{verbosity} > 1);
my $found = 0;
my $prun = nr_fork_pipe($nrconf{verbosity} > 1, $hook, ($nrconf{verbosity} > 1 ? qw(-v) : ()), $exe);
my @nopids;
while(<$prun>) {
chomp;
my @v = split(/\|/);
if($v[0] eq 'PACKAGE' && $v[1]) {
$pkg = $v[1];
print STDERR "$LOGPREF #$pid package: $v[1]\n" if($nrconf{verbosity} > 1);
next;
}
if($v[0] eq 'RC') {
my %lsb = parse_lsbinit($v[1]);
unless(%lsb && exists($lsb{'default-start'})) {
# If the script has no LSB tags we consider to call it later - they
# are broken anyway.
print STDERR "$LOGPREF no LSB headers found at $v[1]\n" if($nrconf{verbosity} > 1);
push(@nopids, $v[1]);
}
# In the run-levels S and 1 no daemons are being started (normally).
# We don't call any rc.d script not started in the current run-level.
elsif($lsb{'default-start'} =~ /$runlevel/) {
# If a pidfile has been found, try to look for the daemon and ignore
# any forked/detached childs (just a heuristic due Debian Bug#721810).
if(exists($lsb{pidfiles})) {
foreach my $pidfile (@{ $lsb{pidfiles} }) {
open(HPID, '<', "$pidfile") || next;
my $p = <HPID>;
close(HPID);
if(int($p) == $pid) {
print STDERR "$LOGPREF #$pid has been started by $v[1] - triggering\n" if($nrconf{verbosity} > 1);
$restart{$v[1]}++;
$found++;
last;
}
}
}
else {
print STDERR "$LOGPREF no pidfile reference found at $v[1]\n" if($nrconf{verbosity} > 1);
push(@nopids, $v[1]);
}
}
else {
print STDERR "$LOGPREF #$pid rc.d script $v[1] should not start in the current run-level($runlevel)\n" if($nrconf{verbosity} > 1);
}
}
}
# No perfect hit - call any rc scripts instead.
print STDERR "$LOGPREF #$pid running $hook no perfect hit found $found pids $#nopids\n" if($nrconf{verbosity} > 1);
if(!$found && $#nopids > -1) {
foreach my $rc (@nopids) {
if($is_systemd && exists($restart{"$rc.service"})) {
print STDERR "$LOGPREF #$pid rc.d script $rc seems to be superseded by $rc.service\n" if($nrconf{verbosity} > 1);
}
else {
$restart{$rc}++;
}
}
$found++;
}
last if($found);
}
}
$ui->progress_fin;
}
# List user's processes in user-mode
if($uid && scalar %stage2) {
my %fnames;
foreach my $pid (keys %stage2) {
push(@{$fnames{ $ptable->{$pid}->{fname} }}, $pid);
}
if($opt_b) {
print map { "NEEDRESTART-PID: $_=".join(',', @{ $fnames{$_} })."\n"; } nsort keys %fnames;
}
else {
$ui->notice(__ 'Your outdated processes:');
$ui->notice(join(', ',map { $_.'['.join(', ', @{ $fnames{$_} }).']'; } nsort keys %fnames));
}
}
}
# Apply rc/service blacklist
foreach my $rc (keys %restart) {
next unless(scalar grep { $rc =~ /$_/; } @{$nrconf{blacklist_rc}});
print STDERR "$LOGPREF $rc is blacklisted -> ignored\n" if($nrconf{verbosity} > 1);
delete($restart{$rc});
}
# Skip kernel stuff within container
if($is_container || needrestart_cont_check($nrconf{verbosity} > 1, 1, nr_readlink(1), 1)) {
print STDERR "$LOGPREF inside container, skipping kernel checks\n" if($nrconf{verbosity} > 1);
$opt_k = undef;
}
# Skip uCode stuff within container or vm
if($is_container || $is_vm || needrestart_cont_check($nrconf{verbosity} > 1, 1, nr_readlink(1), 1)) {
print STDERR "$LOGPREF inside container or vm, skipping microcode checks\n" if($nrconf{verbosity} > 1);
$opt_w = undef;
}
my ($ucode_result, %ucode_vars) = (NRM_UNKNOWN);
if(defined($opt_w)) {
($ucode_result, %ucode_vars) = ($nrconf{ucodehints} || $opt_w ? nr_ucode_check($nrconf{verbosity} > 1, $ui) : ());
}
if(defined($opt_k)) {
my ($kresult, %kvars) = ($nrconf{kernelhints} || $opt_b ? nr_kernel_check($nrconf{verbosity} > 1, $nrconf{kernelfilter}, $ui) : ());
if(defined($kresult)) {
if($opt_b) {
unless($opt_p) {
print "NEEDRESTART-KCUR: $kvars{KVERSION}\n";
print "NEEDRESTART-KEXP: $kvars{EVERSION}\n" if(defined($kvars{EVERSION}));
print "NEEDRESTART-KSTA: $kresult\n";
}
else {
$nagios{kstr} = $kvars{KVERSION};
if($kresult == NRK_VERUPGRADE) {
$nagios{kstr} .= "!=$kvars{EVERSION}";
$nagios{kret} = $nrconf{q(nagios-status)}->{kernel};
$nagios{kperf} = 2;
}
elsif($kresult == NRK_ABIUPGRADE) {
$nagios{kret} = $nrconf{q(nagios-status)}->{kernel};
$nagios{kperf} = 1;
}
elsif($kresult == NRK_NOUPGRADE) {
$nagios{kret} = 0;
$nagios{kperf} = 0;
}
if($nagios{kret} == 1) {
$nagios{kstr} .= " (!)";
}
elsif($nagios{kret} == 2) {
$nagios{kstr} .= " (!!)";
}
}
}
else {
if($kresult == NRK_NOUPGRADE) {
unless($opt_m eq 'e') {
$ui->vspace();
$ui->notice(($kvars{ABIDETECT} ? __('Running kernel seems to be up-to-date.') : __('Running kernel seems to be up-to-date (ABI upgrades are not detected).')))
}
}
elsif($kresult == NRK_ABIUPGRADE) {
push(@easy_hints, __ 'an outdated kernel image') if($opt_m eq 'e');
if($nrconf{kernelhints} < 0) {
$ui->vspace();
$ui->notice(__x(
'The currently running kernel version is {kversion} and there is an ABI compatible upgrade pending.',
kversion => $kvars{KVERSION},
));
}
else {
$ui->announce_abi(%kvars);
}
}
elsif($kresult == NRK_VERUPGRADE) {
push(@easy_hints, __ 'an outdated kernel image') if($opt_m eq 'e');
if($nrconf{kernelhints} < 0) {
$ui->vspace();
$ui->notice(__x(
'The currently running kernel version is {kversion} which is not the expected kernel version {eversion}.',
kversion => $kvars{KVERSION},
eversion => $kvars{EVERSION},
));
}
else {
$ui->announce_ver(%kvars);
}
}
else {
$ui->vspace();
$ui->notice(__ 'Failed to retrieve available kernel versions.');
}
}
}
}
if($opt_w) {
if($opt_b) {
unless($opt_p) {
print "NEEDRESTART-UCSTA: $ucode_result\n";
if($ucode_result != NRM_UNKNOWN) {
print "NEEDRESTART-UCCUR: $ucode_vars{CURRENT}\n";
print "NEEDRESTART-UCEXP: $ucode_vars{AVAIL}\n";
}
}
else {
if($ucode_result == NRM_OBSOLETE) {
$nagios{mstr} = "OBSOLETE";
$nagios{mret} = $nrconf{q(nagios-status)}->{ucode};
$nagios{mperf} = 1;
}
elsif($ucode_result == NRM_CURRENT) {
$nagios{mstr} = "CURRENT";
$nagios{mret} = 0;
$nagios{mperf} = 0;
}
if($nagios{mret} == 1) {
$nagios{mstr} .= " (!)";
}
elsif($nagios{mret} == 2) {
$nagios{mstr} .= " (!!)";
}
}
}
else {
if($ucode_result == NRM_CURRENT) {
unless($opt_m eq 'e') {
$ui->vspace();
$ui->notice(__('The processor microcode seems to be up-to-date.'));
}
}
elsif($ucode_result == NRM_OBSOLETE) {
push(@easy_hints, __ 'outdated processor microcode') if($opt_m eq 'e');
if($nrconf{ucodehints}) {
$ui->announce_ucode(%ucode_vars);
}
}
else {
$ui->vspace();
$ui->notice(__ 'Failed to check for processor microcode upgrades.');
}
}
}
if(defined($opt_l) && !$uid) {
## SERVICES
$ui->vspace();
unless(scalar %restart) {
$ui->notice(__ 'No services need to be restarted.') unless($opt_b || $opt_m eq 'e');
if($opt_p) {
$nagios{sstr} = q(none);
$nagios{sret} = 0;
$nagios{sperf} = 0;
}
}
else {
if($opt_m eq 'e' && $opt_r ne 'i') {
push(@easy_hints, __ 'outdated binaries');
}
elsif($opt_b || $opt_r ne 'i') {
my @skipped_services;
my @refused_services;
$ui->notice(__ 'Services to be restarted:') if($opt_r eq 'l');
$ui->notice(__ 'Restarting services...') if($opt_r eq 'a');
if($opt_p) {
$nagios{sstr} = (scalar keys %restart);
$nagios{sret} = $nrconf{q(nagios-status)}->{services};
$nagios{sperf} = (scalar keys %restart);
if($nagios{sret} == 1) {
$nagios{sstr} .= " (!)";
}
elsif($nagios{sret} == 2) {
$nagios{sstr} .= " (!!)";
}
}
my ($self_unit) = get_cgroup_unit($$, $nrconf{verbosity});
foreach my $rc (sort { lc($a) cmp lc($b) } keys %restart) {
# always combine restarts in one systemctl command
local $nrconf{systemctl_combine} = 1 unless($opt_r eq 'l');
if($opt_b) {
print "NEEDRESTART-SVC: $rc\n" unless($opt_p);
next;
}
# record service which can not be restarted
if($is_systemd && systemd_refuse_restart($rc)) {
push(@refused_services, $rc);
next;
}
# don't restart greylisted services...
my $restart = !$nrconf{defno};
# Default to defer restarting the service that called needrestart,
# as it could result in needrestart committing suicide.
$restart = 0 if ($self_unit =~ /${rc}$/);
foreach my $re (keys %{$nrconf{override_rc}}) {
next unless($rc =~ /$re/);
$restart = $nrconf{override_rc}->{$re};
last;
}
# ...but complain about them
unless($restart) {
push(@skipped_services, $rc);
next;
}
my @cmd = restart_cmd($rc);
next unless($#cmd > -1);
$ui->command(join(' ', '', @cmd));
$ui->runcmd(sub {
system(@cmd) if($opt_r eq 'a');
});
}
unless($#systemd_restart == -1) {
my @cmd = (qq(systemctl), qq(restart), @systemd_restart);
$ui->command(join(' ', '', @cmd));
$ui->runcmd(sub {
system(@cmd) if($opt_r eq 'a');
});
}
@systemd_restart = ();
if($#skipped_services > -1) {
$ui->vspace();
$ui->notice(__ 'Service restarts being deferred:');
foreach my $rc (sort @skipped_services) {
my @cmd = restart_cmd($rc);
$ui->command(join(' ', '', @cmd)) if($#cmd > -1);
}
unless($#systemd_restart == -1) {
my @cmd = (qq(systemctl), qq(restart), @systemd_restart);
$ui->command(join(' ', '', @cmd));
}
}
# report services restarts refused by systemd
if($#refused_services > -1) {
$ui->vspace();
$ui->notice(__ 'Service restarts being refused by systemd:');
foreach my $rc (sort @refused_services) {
$ui->command(qq( $rc));
}
}
}
else {
my $o = 0;
my @skipped_services = keys %restart;
# filter service units which are refused to be restarted
my @refused_services;
my %rs = map {
my $rc = $_;
if($is_systemd) {
if(systemd_refuse_restart($rc)) {
push(@refused_services, $rc);
@skipped_services = grep { $_ ne $rc; } @skipped_services;
();
}
else {
($rc => 1);
}
}
else {
($rc => 1);
}
} keys %restart;
$ui->notice(__ 'Restarting services...');
$ui->query_pkgs(__('Services to be restarted:'), $nrconf{defno}, \%rs, $nrconf{override_rc},
sub {
# always combine restarts in one systemctl command
local $nrconf{systemctl_combine} = 1;
my $rc = shift;
@skipped_services = grep { $_ ne $rc; } @skipped_services;
my @cmd = restart_cmd($rc);
return unless($#cmd > -1);
$ui->command(join(' ', '', @cmd));
system(@cmd);
});
if($#systemd_restart > -1) {
my @cmd = (qw(systemctl restart), @systemd_restart);
$ui->command(join(' ', '', @cmd));
$ui->runcmd(sub {
system(@cmd);
});
}
@systemd_restart = ();
if($#skipped_services > -1) {
$ui->notice(__ 'Service restarts being deferred:');
foreach my $rc (sort @skipped_services) {
my @cmd = restart_cmd($rc);
$ui->command(join(' ', '', @cmd)) if($#cmd > -1);
}
unless($#systemd_restart == -1) {
my @cmd = (qq(systemctl), qq(restart), @systemd_restart);
$ui->command(join(' ', '', @cmd));
}
}
# report services restarts refused by systemd
if($#refused_services > -1) {
$ui->notice(__ 'Service restarts being refused by systemd:');
foreach my $rc (sort @refused_services) {
$ui->command(qq( $rc));
}
}
}
}
## CONTAINERS
$ui->vspace();
@systemd_restart = ();
my %conts = needrestart_cont_get($nrconf{verbosity} > 1);
unless(scalar %conts) {
$ui->notice(__ 'No containers need to be restarted.') unless($opt_b || $opt_m eq 'e');
if($opt_p) {
$nagios{cstr} = q(none);
$nagios{cret} = 0;
$nagios{cperf} = 0;
}
}
else {
if($opt_m eq 'e' && $opt_r ne 'i') {
push(@easy_hints, __ 'outdated containers');
}
elsif($opt_b || $opt_r ne 'i') {
my @skipped_containers;
$ui->notice(__ 'Containers to be restarted:') if($opt_r eq 'l');
$ui->notice(__ 'Restarting containers...') if($opt_r eq 'a' and $opt_m ne 'u');
if($opt_p) {
$nagios{cstr} = (scalar keys %conts);
$nagios{cret} = $nrconf{q(nagios-status)}->{containers};
$nagios{cperf} = (scalar keys %conts);
if($nagios{cret} == 1) {
$nagios{cstr} .= " (!)";
}
elsif($nagios{cret} == 2) {
$nagios{cstr} .= " (!!)";
}
}
foreach my $cont (sort { lc($a) cmp lc($b) } keys %conts) {
if($opt_b) {
print "NEEDRESTART-CONT: $cont\n" unless($opt_p);
next;
}
# don't restart greylisted containers...
# On Ubuntu mode, all containers are greylisted by default.
my $restart = !($nrconf{defno} or $opt_m eq 'u');
foreach my $re (keys %{$nrconf{override_cont}}) {
next unless($cont =~ /$re/);
$restart = $nrconf{override_cont}->{$re};
last;
}
# ...but complain about them
unless($restart) {
push(@skipped_containers, $cont);
next;
}
$ui->command(join(' ', '', @{ $conts{$cont} }));
$ui->runcmd(sub {
system(@{ $conts{$cont} }) if($opt_r eq 'a');
});
}
if($#skipped_containers > -1) {
$ui->notice(__ 'Container restarts being deferred:');
foreach my $cont (sort @skipped_containers) {
$ui->command(join(' ', '', @{ $conts{$cont} }));
}
}
}
else {
my $o = 0;
$ui->notice(__ 'Restarting containers...');
$ui->query_conts(__('Containers to be restarted:'), $nrconf{defno}, \%conts, $nrconf{override_cont},
sub {
my $cont = shift;
$ui->command(join(' ', '', @{ $conts{$cont} }));
system(@{ $conts{$cont} });
});
}
}
## SESSIONS
$ui->vspace();
# list and notify user sessions
unless(scalar keys %sessions) {
$ui->notice(__ 'No user sessions are running outdated binaries.') unless($opt_b || $opt_m eq 'e');
if($opt_p) {
$nagios{ustr} = 'none';
$nagios{uret} = 0;
$nagios{uperf} = 0;
}
}
else {
if($opt_m eq 'e') {
push(@easy_hints, __ 'outdated sessions');
}
else {
$ui->notice(__ 'User sessions running outdated binaries:');
}
if($opt_p) {
my $count = sum map { scalar keys %{ $sessions{$_} } } keys %sessions;
$nagios{ustr} = $count;
$nagios{uret} = $nrconf{q(nagios-status)}->{sessions};
$nagios{uperf} = $count;
if($nagios{uret} == 1) {
$nagios{ustr} .= " (!)";
}
elsif($nagios{uret} == 2) {
$nagios{ustr} .= " (!!)";
}
}
unless($opt_p || $opt_b) {
foreach my $uid (sort { ncmp(uid2name($a), uid2name($b)); } keys %sessions) {
foreach my $sess (sort keys %{ $sessions{$uid} }) {
my $fnames = join(', ',map { $_.'['.join(',', @{ $sessions{$uid}->{$sess}->{$_} }).']'; } nsort keys %{ $sessions{$uid}->{$sess} });
$ui->notice(' '.uid2name($uid)." @ $sess: $fnames") unless($opt_m eq 'e');
if($nrconf{sendnotify}) {
local %ENV;
$ENV{NR_UID} = $uid;
$ENV{NR_USERNAME} = uid2name($uid);
$ENV{NR_SESSION} = $sess;
$ENV{NR_SESSPPID} = findppid($uid, sort map { @$_; } values %{ $sessions{$uid}->{$sess} });
foreach my $bin (nsort <$nrconf{notify_d}/*>) {
next unless(-x $bin);
next if($bin =~ /(~|\.dpkg-[^.]+)$/);
print STDERR "$LOGPREF run $bin\n" if($nrconf{verbosity} > 1);
my $pipe = nr_fork_pipew($nrconf{verbosity} > 1, $bin);
print $pipe "$fnames\n";
last if(close($pipe));
}
}
}
}
}
}
## GUESTS
$ui->vspace();
if (! @guests) {
$ui->notice(__ 'No VM guests are running outdated hypervisor (qemu) binaries on this host.') unless($opt_b || $opt_m eq 'e');
}
else {
if($opt_m eq 'e') {
push(@easy_hints, __ 'outdated VM guests');
}
else {
unless($opt_p || $opt_b) {
$ui->notice(__ 'VM guests are running outdated hypervisor (qemu) binaries on this host:');
foreach ( @guests ) {
$ui->notice(" $_");
}
}
}
}
}
# easy mode: print hint on outdated stuff
if(scalar @easy_hints) {
my $t = pop(@easy_hints);
my $h = join(', ', @easy_hints);
$ui->announce_ehint(EHINT => ($h ? join(' ', $h, __ 'and', '') : '') . $t);
}
my @sessions_list;
if(scalar %sessions) {
# build a sorted list of user @ session strings
#
# used in the nagios and batch outputs below
@sessions_list = map {
my $uid = $_;
my $user = uid2name($uid);
my @ret;
foreach my $sess (sort keys %{ $sessions{$uid} }) {
push(@ret, "$user \@ $sess");
}
@ret;
}
sort {
ncmp(uid2name($a), uid2name($b));
} keys %sessions
}
# nagios plugin output
if($opt_p) {
my %states = (
0 => q(OK),
1 => q(WARN),
2 => q(CRIT),
3 => q(UNKN),
);
my ($ret) = reverse sort
(($opt_k ? $nagios{kret} : ()), ($opt_w ? $nagios{mret} : ()),
($opt_l ? ($nagios{sret}, $nagios{cret}, $nagios{uret}) : ()));
print "$states{$ret} - ", join(', ',
($opt_k ? "Kernel: $nagios{kstr}" : ()),
($opt_w ? "Microcode: $nagios{mstr}" : ()),
($opt_l ? "Services: $nagios{sstr}" : ()),
($opt_l ? "Containers: $nagios{cstr}" : ()),
($opt_l ? "Sessions: $nagios{ustr}" : ()),
), '|', join(' ',
( ($opt_k && $nagios{kret} != 3) ? "Kernel=$nagios{kperf};0;;0;2" : ()),
( ($opt_w && $nagios{mret} != 3) ? "Microcode=$nagios{mperf};0;;0;1" : ()),
( ($opt_l && $nagios{sret} != 3) ? "Services=$nagios{sperf};;0;0" : ()),
( ($opt_l && $nagios{cret} != 3) ? "Containers=$nagios{cperf};;0;0" : ()),
( ($opt_l && $nagios{uret} != 3) ? "Sessions=$nagios{uperf};0;;0" : ()),
), "\n";
if(scalar %restart) {
print "Services:", join("\n- ", '', sort keys %restart), "\n";
}
my %conts = needrestart_cont_get($nrconf{verbosity} > 1);
if(scalar %conts) {
print "Containers:", join("\n- ", '', sort keys %conts), "\n";
}
if(scalar %sessions) {
print "Sessions:", join("\n- ", '', @sessions_list), "\n";
}
exit $ret;
}
if ($opt_b and scalar %sessions) {
for my $sess (@sessions_list) {
print "NEEDRESTART-SESS: $sess\n";
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| ModemManager | File | 2.07 MB | 0755 |
|
| a2disconf | File | 15.75 KB | 0755 |
|
| a2dismod | File | 15.75 KB | 0755 |
|
| a2dissite | File | 15.75 KB | 0755 |
|
| a2enconf | File | 15.75 KB | 0755 |
|
| a2enmod | File | 15.75 KB | 0755 |
|
| a2ensite | File | 15.75 KB | 0755 |
|
| a2query | File | 9.6 KB | 0755 |
|
| aa-load | File | 38.75 KB | 0755 |
|
| aa-remove-unknown | File | 3.15 KB | 0755 |
|
| aa-status | File | 39.06 KB | 0755 |
|
| aa-teardown | File | 137 B | 0755 |
|
| accessdb | File | 14.55 KB | 0755 |
|
| add-shell | File | 1.03 KB | 0755 |
|
| addgnupghome | File | 3 KB | 0755 |
|
| addgroup | File | 53.9 KB | 0755 |
|
| adduser | File | 53.9 KB | 0755 |
|
| agetty | File | 59.56 KB | 0755 |
|
| apache2 | File | 736.55 KB | 0755 |
|
| apache2ctl | File | 7.26 KB | 0755 |
|
| apachectl | File | 7.26 KB | 0755 |
|
| apparmor_parser | File | 1.55 MB | 0755 |
|
| apparmor_status | File | 39.06 KB | 0755 |
|
| applygnupgdefaults | File | 2.17 KB | 0755 |
|
| argdist-bpfcc | File | 36 KB | 0755 |
|
| arpd | File | 26.33 KB | 0755 |
|
| arptables | File | 219.16 KB | 0755 |
|
| arptables-nft | File | 219.16 KB | 0755 |
|
| arptables-nft-restore | File | 219.16 KB | 0755 |
|
| arptables-nft-save | File | 219.16 KB | 0755 |
|
| arptables-restore | File | 219.16 KB | 0755 |
|
| arptables-save | File | 219.16 KB | 0755 |
|
| badblocks | File | 34.32 KB | 0755 |
|
| bashreadline-bpfcc | File | 2.32 KB | 0755 |
|
| bashreadline.bt | File | 698 B | 0755 |
|
| bcache-super-show | File | 14.3 KB | 0755 |
|
| bindsnoop-bpfcc | File | 15.96 KB | 0755 |
|
| biolatency-bpfcc | File | 11.1 KB | 0755 |
|
| biolatency-kp.bt | File | 664 B | 0755 |
|
| biolatency.bt | File | 681 B | 0755 |
|
| biolatpcts-bpfcc | File | 10.01 KB | 0755 |
|
| biopattern-bpfcc | File | 3.86 KB | 0755 |
|
| biosdecode | File | 27.2 KB | 0755 |
|
| biosnoop-bpfcc | File | 10.58 KB | 0755 |
|
| biosnoop.bt | File | 1.12 KB | 0755 |
|
| biostacks.bt | File | 915 B | 0755 |
|
| biotop-bpfcc | File | 9.34 KB | 0755 |
|
| bitesize-bpfcc | File | 1.14 KB | 0755 |
|
| bitesize.bt | File | 567 B | 0755 |
|
| blkdeactivate | File | 15.97 KB | 0755 |
|
| blkdiscard | File | 22.38 KB | 0755 |
|
| blkid | File | 54.41 KB | 0755 |
|
| blkzone | File | 34.38 KB | 0755 |
|
| blockdev | File | 34.38 KB | 0755 |
|
| bpflist-bpfcc | File | 2.54 KB | 0755 |
|
| bpftool | File | 1.58 KB | 0755 |
|
| bridge | File | 108.49 KB | 0755 |
|
| btrfsdist-bpfcc | File | 6.47 KB | 0755 |
|
| btrfsslower-bpfcc | File | 9.75 KB | 0755 |
|
| cache_check | File | 1.36 MB | 0755 |
|
| cache_dump | File | 1.36 MB | 0755 |
|
| cache_metadata_size | File | 1.36 MB | 0755 |
|
| cache_repair | File | 1.36 MB | 0755 |
|
| cache_restore | File | 1.36 MB | 0755 |
|
| cache_writeback | File | 1.36 MB | 0755 |
|
| cachestat-bpfcc | File | 6.38 KB | 0755 |
|
| cachetop-bpfcc | File | 9.15 KB | 0755 |
|
| capable-bpfcc | File | 8.28 KB | 0755 |
|
| capable.bt | File | 1.88 KB | 0755 |
|
| capsh | File | 57.09 KB | 0755 |
|
| cfdisk | File | 94.73 KB | 0755 |
|
| cgdisk | File | 166.48 KB | 0755 |
|
| chcpu | File | 30.38 KB | 0755 |
|
| check_forensic | File | 952 B | 0755 |
|
| chgpasswd | File | 58.32 KB | 0755 |
|
| chmem | File | 34.38 KB | 0755 |
|
| chpasswd | File | 54.43 KB | 0755 |
|
| chroot | File | 38.51 KB | 0755 |
|
| cobjnew-bpfcc | File | 53 B | 0755 |
|
| compactsnoop-bpfcc | File | 11.1 KB | 0755 |
|
| cpgr | File | 48.45 KB | 0755 |
|
| cppw | File | 48.45 KB | 0755 |
|
| cpudist-bpfcc | File | 6.85 KB | 0755 |
|
| cpuunclaimed-bpfcc | File | 14.59 KB | 0755 |
|
| cpuwalk.bt | File | 497 B | 0755 |
|
| criticalstat-bpfcc | File | 8.41 KB | 0755 |
|
| cron | File | 58.67 KB | 0755 |
|
| cryptdisks_start | File | 1.51 KB | 0755 |
|
| cryptdisks_stop | File | 844 B | 0755 |
|
| cryptsetup | File | 225.9 KB | 0755 |
|
| ctrlaltdel | File | 14.38 KB | 0755 |
|
| dbconfig-generate-include | File | 12.36 KB | 0755 |
|
| dbconfig-load-include | File | 5.57 KB | 0755 |
|
| dbslower-bpfcc | File | 7.22 KB | 0755 |
|
| dbstat-bpfcc | File | 3.7 KB | 0755 |
|
| dcb | File | 80.52 KB | 0755 |
|
| dcsnoop-bpfcc | File | 4.03 KB | 0755 |
|
| dcsnoop.bt | File | 1.23 KB | 0755 |
|
| dcstat-bpfcc | File | 3.77 KB | 0755 |
|
| ddns-confgen | File | 22.3 KB | 0755 |
|
| deadlock-bpfcc | File | 20.45 KB | 0755 |
|
| debugfs | File | 225.87 KB | 0755 |
|
| delgroup | File | 18.53 KB | 0755 |
|
| deluser | File | 18.53 KB | 0755 |
|
| depmod | File | 170.24 KB | 0755 |
|
| devlink | File | 150.86 KB | 0755 |
|
| dhcpcd | File | 395.4 KB | 0755 |
|
| dirtop-bpfcc | File | 8.37 KB | 0755 |
|
| dmeventd | File | 50.38 KB | 0755 |
|
| dmidecode | File | 135.25 KB | 0755 |
|
| dmsetup | File | 171.05 KB | 0755 |
|
| dmstats | File | 171.05 KB | 0755 |
|
| dosfsck | File | 78.38 KB | 0755 |
|
| dosfslabel | File | 38.38 KB | 0755 |
|
| dpkg-preconfigure | File | 4.25 KB | 0755 |
|
| dpkg-reconfigure | File | 4.43 KB | 0755 |
|
| drsnoop-bpfcc | File | 6.73 KB | 0755 |
|
| dumpe2fs | File | 34.31 KB | 0755 |
|
| e2freefrag | File | 18.3 KB | 0755 |
|
| e2fsck | File | 364.34 KB | 0755 |
|
| e2image | File | 42.31 KB | 0755 |
|
| e2label | File | 110.56 KB | 0755 |
|
| e2mmpstatus | File | 34.31 KB | 0755 |
|
| e2scrub | File | 7.12 KB | 0755 |
|
| e2scrub_all | File | 5.27 KB | 0755 |
|
| e2undo | File | 22.3 KB | 0755 |
|
| e4crypt | File | 30.38 KB | 0755 |
|
| e4defrag | File | 34.3 KB | 0755 |
|
| ebtables | File | 219.16 KB | 0755 |
|
| ebtables-nft | File | 219.16 KB | 0755 |
|
| ebtables-nft-restore | File | 219.16 KB | 0755 |
|
| ebtables-nft-save | File | 219.16 KB | 0755 |
|
| ebtables-restore | File | 219.16 KB | 0755 |
|
| ebtables-save | File | 219.16 KB | 0755 |
|
| ebtables-translate | File | 219.16 KB | 0755 |
|
| era_check | File | 1.36 MB | 0755 |
|
| era_dump | File | 1.36 MB | 0755 |
|
| era_invalidate | File | 1.36 MB | 0755 |
|
| era_restore | File | 1.36 MB | 0755 |
|
| ethtool | File | 651.68 KB | 0755 |
|
| execsnoop-bpfcc | File | 9.82 KB | 0755 |
|
| execsnoop.bt | File | 928 B | 0755 |
|
| exitsnoop-bpfcc | File | 9.42 KB | 0755 |
|
| ext4dist-bpfcc | File | 6.53 KB | 0755 |
|
| ext4slower-bpfcc | File | 9.71 KB | 0755 |
|
| faillock | File | 22.31 KB | 0755 |
|
| fatlabel | File | 38.38 KB | 0755 |
|
| fdisk | File | 114.42 KB | 0755 |
|
| filefrag | File | 18.32 KB | 0755 |
|
| filegone-bpfcc | File | 5.64 KB | 0755 |
|
| filelife-bpfcc | File | 6.38 KB | 0755 |
|
| fileslower-bpfcc | File | 7.2 KB | 0755 |
|
| filetop-bpfcc | File | 6.35 KB | 0755 |
|
| findfs | File | 14.38 KB | 0755 |
|
| fixparts | File | 58.48 KB | 0755 |
|
| fsadm | File | 24 KB | 0755 |
|
| fsck | File | 42.42 KB | 0755 |
|
| fsck.btrfs | File | 1.16 KB | 0755 |
|
| fsck.cramfs | File | 30.44 KB | 0755 |
|
| fsck.ext2 | File | 364.34 KB | 0755 |
|
| fsck.ext3 | File | 364.34 KB | 0755 |
|
| fsck.ext4 | File | 364.34 KB | 0755 |
|
| fsck.fat | File | 78.38 KB | 0755 |
|
| fsck.minix | File | 54.41 KB | 0755 |
|
| fsck.msdos | File | 78.38 KB | 0755 |
|
| fsck.vfat | File | 78.38 KB | 0755 |
|
| fsck.xfs | File | 2.51 KB | 0755 |
|
| fsfreeze | File | 14.38 KB | 0755 |
|
| fstab-decode | File | 14.3 KB | 0755 |
|
| fstrim | File | 42.38 KB | 0755 |
|
| funccount-bpfcc | File | 12.68 KB | 0755 |
|
| funcinterval-bpfcc | File | 5.46 KB | 0755 |
|
| funclatency-bpfcc | File | 11.28 KB | 0755 |
|
| funcslower-bpfcc | File | 10.38 KB | 0755 |
|
| gdisk | File | 198.48 KB | 0755 |
|
| genl | File | 120.58 KB | 0755 |
|
| getcap | File | 14.3 KB | 0755 |
|
| gethostlatency-bpfcc | File | 3.82 KB | 0755 |
|
| gethostlatency.bt | File | 1.19 KB | 0755 |
|
| getpcaps | File | 14.3 KB | 0755 |
|
| getty | File | 59.56 KB | 0755 |
|
| groupadd | File | 71.13 KB | 0755 |
|
| groupdel | File | 62.91 KB | 0755 |
|
| groupmems | File | 58.34 KB | 0755 |
|
| groupmod | File | 71.04 KB | 0755 |
|
| grpck | File | 58.32 KB | 0755 |
|
| grpconv | File | 50.16 KB | 0755 |
|
| grpunconv | File | 50.16 KB | 0755 |
|
| grub-bios-setup | File | 958.55 KB | 0755 |
|
| grub-install | File | 1.17 MB | 0755 |
|
| grub-macbless | File | 946.41 KB | 0755 |
|
| grub-mkconfig | File | 8.63 KB | 0755 |
|
| grub-mkdevicemap | File | 70.69 KB | 0755 |
|
| grub-probe | File | 954.66 KB | 0755 |
|
| grub-reboot | File | 4.73 KB | 0755 |
|
| grub-set-default | File | 3.47 KB | 0755 |
|
| halt | File | 1.43 MB | 0755 |
|
| hardirqs-bpfcc | File | 6.85 KB | 0755 |
|
| hdparm | File | 139.43 KB | 0755 |
|
| httxt2dbm | File | 14.3 KB | 0755 |
|
| iconvconfig | File | 34.47 KB | 0755 |
|
| init | File | 98.45 KB | 0755 |
|
| inject-bpfcc | File | 16.06 KB | 0755 |
|
| insmod | File | 170.24 KB | 0755 |
|
| install-sgmlcatalog | File | 4.44 KB | 0755 |
|
| installkernel | File | 2.6 KB | 0755 |
|
| integritysetup | File | 67.06 KB | 0755 |
|
| invoke-rc.d | File | 16.13 KB | 0755 |
|
| ip | File | 754.8 KB | 0755 |
|
| ip6tables | File | 219.16 KB | 0755 |
|
| ip6tables-apply | File | 6.89 KB | 0755 |
|
| ip6tables-legacy | File | 92.95 KB | 0755 |
|
| ip6tables-legacy-restore | File | 92.95 KB | 0755 |
|
| ip6tables-legacy-save | File | 92.95 KB | 0755 |
|
| ip6tables-nft | File | 219.16 KB | 0755 |
|
| ip6tables-nft-restore | File | 219.16 KB | 0755 |
|
| ip6tables-nft-save | File | 219.16 KB | 0755 |
|
| ip6tables-restore | File | 219.16 KB | 0755 |
|
| ip6tables-restore-translate | File | 219.16 KB | 0755 |
|
| ip6tables-save | File | 219.16 KB | 0755 |
|
| ip6tables-translate | File | 219.16 KB | 0755 |
|
| iptables | File | 219.16 KB | 0755 |
|
| iptables-apply | File | 6.89 KB | 0755 |
|
| iptables-legacy | File | 92.95 KB | 0755 |
|
| iptables-legacy-restore | File | 92.95 KB | 0755 |
|
| iptables-legacy-save | File | 92.95 KB | 0755 |
|
| iptables-nft | File | 219.16 KB | 0755 |
|
| iptables-nft-restore | File | 219.16 KB | 0755 |
|
| iptables-nft-save | File | 219.16 KB | 0755 |
|
| iptables-restore | File | 219.16 KB | 0755 |
|
| iptables-restore-translate | File | 219.16 KB | 0755 |
|
| iptables-save | File | 219.16 KB | 0755 |
|
| iptables-translate | File | 219.16 KB | 0755 |
|
| iscsi-iname | File | 18.3 KB | 0755 |
|
| iscsi_discovery | File | 5.17 KB | 0755 |
|
| iscsiadm | File | 370.43 KB | 0755 |
|
| iscsid | File | 286.55 KB | 0755 |
|
| iscsistart | File | 274.49 KB | 0755 |
|
| isosize | File | 14.38 KB | 0755 |
|
| iucode-tool | File | 54.34 KB | 0755 |
|
| iucode_tool | File | 54.34 KB | 0755 |
|
| javacalls-bpfcc | File | 55 B | 0755 |
|
| javaflow-bpfcc | File | 54 B | 0755 |
|
| javagc-bpfcc | File | 52 B | 0755 |
|
| javaobjnew-bpfcc | File | 56 B | 0755 |
|
| javastat-bpfcc | File | 54 B | 0755 |
|
| javathreads-bpfcc | File | 57 B | 0755 |
|
| kbdrate | File | 18.31 KB | 0755 |
|
| killall5 | File | 26.23 KB | 0755 |
|
| killsnoop-bpfcc | File | 4.45 KB | 0755 |
|
| killsnoop.bt | File | 873 B | 0755 |
|
| klockstat-bpfcc | File | 13.04 KB | 0755 |
|
| kpartx | File | 42.16 KB | 0755 |
|
| kvmexit-bpfcc | File | 11.19 KB | 0755 |
|
| ldattach | File | 26.38 KB | 0755 |
|
| ldconfig | File | 387 B | 0755 |
|
| ldconfig.real | File | 1 MB | 0755 |
|
| llcstat-bpfcc | File | 4.48 KB | 0755 |
|
| loads.bt | File | 1.1 KB | 0755 |
|
| locale-gen | File | 4.21 KB | 0755 |
|
| logrotate | File | 94.24 KB | 0755 |
|
| logsave | File | 14.16 KB | 0755 |
|
| losetup | File | 74.52 KB | 0755 |
|
| lsmod | File | 170.24 KB | 0755 |
|
| luksformat | File | 3.32 KB | 0755 |
|
| lvchange | File | 3.01 MB | 0755 |
|
| lvconvert | File | 3.01 MB | 0755 |
|
| lvcreate | File | 3.01 MB | 0755 |
|
| lvdisplay | File | 3.01 MB | 0755 |
|
| lvextend | File | 3.01 MB | 0755 |
|
| lvm | File | 3.01 MB | 0755 |
|
| lvmconfig | File | 3.01 MB | 0755 |
|
| lvmdiskscan | File | 3.01 MB | 0755 |
|
| lvmdump | File | 10.12 KB | 0755 |
|
| lvmpolld | File | 235.97 KB | 0755 |
|
| lvmsadc | File | 3.01 MB | 0755 |
|
| lvmsar | File | 3.01 MB | 0755 |
|
| lvreduce | File | 3.01 MB | 0755 |
|
| lvremove | File | 3.01 MB | 0755 |
|
| lvrename | File | 3.01 MB | 0755 |
|
| lvresize | File | 3.01 MB | 0755 |
|
| lvs | File | 3.01 MB | 0755 |
|
| lvscan | File | 3.01 MB | 0755 |
|
| lxc | File | 589 B | 0755 |
|
| lxd | File | 589 B | 0755 |
|
| make-bcache | File | 22.38 KB | 0755 |
|
| make-ssl-cert | File | 6.65 KB | 0755 |
|
| mariadbd | File | 26.09 MB | 0755 |
|
| mdadm | File | 622.21 KB | 0755 |
|
| mdflush-bpfcc | File | 2.24 KB | 0755 |
|
| mdflush.bt | File | 775 B | 0755 |
|
| mdmon | File | 258.8 KB | 0755 |
|
| memleak-bpfcc | File | 20.8 KB | 0755 |
|
| mkdosfs | File | 50.83 KB | 0755 |
|
| mke2fs | File | 130.62 KB | 0755 |
|
| mkfs | File | 14.38 KB | 0755 |
|
| mkfs.bfs | File | 22.38 KB | 0755 |
|
| mkfs.btrfs | File | 560.3 KB | 0755 |
|
| mkfs.cramfs | File | 34.32 KB | 0755 |
|
| mkfs.ext2 | File | 130.62 KB | 0755 |
|
| mkfs.ext3 | File | 130.62 KB | 0755 |
|
| mkfs.ext4 | File | 130.62 KB | 0755 |
|
| mkfs.fat | File | 50.83 KB | 0755 |
|
| mkfs.minix | File | 42.39 KB | 0755 |
|
| mkfs.msdos | File | 50.83 KB | 0755 |
|
| mkfs.ntfs | File | 66.38 KB | 0755 |
|
| mkfs.vfat | File | 50.83 KB | 0755 |
|
| mkfs.xfs | File | 438.99 KB | 0755 |
|
| mkhomedir_helper | File | 22.34 KB | 0755 |
|
| mkinitramfs | File | 15.39 KB | 0755 |
|
| mklost+found | File | 14.3 KB | 0755 |
|
| mkntfs | File | 66.38 KB | 0755 |
|
| mkswap | File | 50.38 KB | 0755 |
|
| modinfo | File | 170.24 KB | 0755 |
|
| modprobe | File | 170.24 KB | 0755 |
|
| mount.fuse | File | 18.3 KB | 0755 |
|
| mount.fuse3 | File | 18.3 KB | 0755 |
|
| mount.lowntfs-3g | File | 118.98 KB | 0755 |
|
| mount.ntfs | File | 159.01 KB | 0755 |
|
| mount.ntfs-3g | File | 159.01 KB | 0755 |
|
| mountsnoop-bpfcc | File | 14.62 KB | 0755 |
|
| mpathpersist | File | 31.21 KB | 0755 |
|
| multipath | File | 34.3 KB | 0755 |
|
| multipathc | File | 18.3 KB | 0755 |
|
| multipathd | File | 142.46 KB | 0755 |
|
| mysqld | File | 26.09 MB | 0755 |
|
| mysqld_qslower-bpfcc | File | 3.05 KB | 0755 |
|
| named | File | 574.16 KB | 0755 |
|
| naptime.bt | File | 1.01 KB | 0755 |
|
| needrestart | File | 40.13 KB | 0755 |
|
| netfilter-persistent | File | 1.04 KB | 0755 |
|
| netplan | File | 802 B | 0755 |
|
| netqtop-bpfcc | File | 5.59 KB | 0755 |
|
| newusers | File | 86.96 KB | 0755 |
|
| nfnl_osf | File | 18.3 KB | 0755 |
|
| nfsdist-bpfcc | File | 4.95 KB | 0755 |
|
| nfsslower-bpfcc | File | 13.61 KB | 0755 |
|
| nft | File | 26.23 KB | 0755 |
|
| nodegc-bpfcc | File | 52 B | 0755 |
|
| nodestat-bpfcc | File | 54 B | 0755 |
|
| nologin | File | 14.3 KB | 0755 |
|
| ntfsclone | File | 50.38 KB | 0755 |
|
| ntfscp | File | 30.38 KB | 0755 |
|
| ntfslabel | File | 22.38 KB | 0755 |
|
| ntfsresize | File | 62.39 KB | 0755 |
|
| ntfsundelete | File | 50.38 KB | 0755 |
|
| offcputime-bpfcc | File | 13.46 KB | 0755 |
|
| offwaketime-bpfcc | File | 15.31 KB | 0755 |
|
| on_ac_power | File | 3.7 KB | 0755 |
|
| oomkill-bpfcc | File | 2.04 KB | 0755 |
|
| oomkill.bt | File | 1.17 KB | 0755 |
|
| opensnoop-bpfcc | File | 14.24 KB | 0755 |
|
| opensnoop.bt | File | 953 B | 0755 |
|
| overlayroot-chroot | File | 2.45 KB | 0755 |
|
| ownership | File | 14.45 KB | 0755 |
|
| pam-auth-update | File | 20.96 KB | 0755 |
|
| pam_extrausers_chkpwd | File | 26.31 KB | 2755 |
|
| pam_extrausers_update | File | 34.31 KB | 0755 |
|
| pam_getenv | File | 2.82 KB | 0755 |
|
| pam_namespace_helper | File | 467 B | 0755 |
|
| pam_timestamp_check | File | 14.31 KB | 0755 |
|
| paperconfig | File | 4.07 KB | 0755 |
|
| parted | File | 94.4 KB | 0755 |
|
| partprobe | File | 14.38 KB | 0755 |
|
| pdata_tools | File | 1.36 MB | 0755 |
|
| perlcalls-bpfcc | File | 55 B | 0755 |
|
| perlflow-bpfcc | File | 54 B | 0755 |
|
| perlstat-bpfcc | File | 54 B | 0755 |
|
| phpcalls-bpfcc | File | 54 B | 0755 |
|
| phpdismod | File | 7.11 KB | 0755 |
|
| phpenmod | File | 7.11 KB | 0755 |
|
| phpflow-bpfcc | File | 53 B | 0755 |
|
| phpquery | File | 6.24 KB | 0755 |
|
| phpstat-bpfcc | File | 53 B | 0755 |
|
| pidpersec-bpfcc | File | 1.08 KB | 0755 |
|
| pidpersec.bt | File | 628 B | 0755 |
|
| pivot_root | File | 14.38 KB | 0755 |
|
| plymouthd | File | 146.57 KB | 0755 |
|
| poweroff | File | 1.43 MB | 0755 |
|
| ppchcalls-bpfcc | File | 13.89 KB | 0755 |
|
| profile-bpfcc | File | 14.41 KB | 0755 |
|
| pvchange | File | 3.01 MB | 0755 |
|
| pvck | File | 3.01 MB | 0755 |
|
| pvcreate | File | 3.01 MB | 0755 |
|
| pvdisplay | File | 3.01 MB | 0755 |
|
| pvmove | File | 3.01 MB | 0755 |
|
| pvremove | File | 3.01 MB | 0755 |
|
| pvresize | File | 3.01 MB | 0755 |
|
| pvs | File | 3.01 MB | 0755 |
|
| pvscan | File | 3.01 MB | 0755 |
|
| pwck | File | 54.29 KB | 0755 |
|
| pwconv | File | 46.16 KB | 0755 |
|
| pwhistory_helper | File | 22.31 KB | 0755 |
|
| pwunconv | File | 46.16 KB | 0755 |
|
| pythoncalls-bpfcc | File | 57 B | 0755 |
|
| pythonflow-bpfcc | File | 56 B | 0755 |
|
| pythongc-bpfcc | File | 54 B | 0755 |
|
| pythonstat-bpfcc | File | 56 B | 0755 |
|
| rdmaucma-bpfcc | File | 4.95 KB | 0755 |
|
| readahead-bpfcc | File | 6.54 KB | 0755 |
|
| readprofile | File | 22.41 KB | 0755 |
|
| reboot | File | 1.43 MB | 0755 |
|
| remove-shell | File | 1.08 KB | 0755 |
|
| reset-trace-bpfcc | File | 3.42 KB | 0755 |
|
| resize2fs | File | 70.3 KB | 0755 |
|
| resolvconf | File | 158.67 KB | 0755 |
|
| rmmod | File | 170.24 KB | 0755 |
|
| rmt | File | 54.71 KB | 0755 |
|
| rmt-tar | File | 54.71 KB | 0755 |
|
| rndc | File | 42.3 KB | 0755 |
|
| rndc-confgen | File | 22.3 KB | 0755 |
|
| rsyslogd | File | 771.67 KB | 0755 |
|
| rtacct | File | 28.31 KB | 0755 |
|
| rtcwake | File | 34.38 KB | 0755 |
|
| rtmon | File | 116.52 KB | 0755 |
|
| rubycalls-bpfcc | File | 55 B | 0755 |
|
| rubyflow-bpfcc | File | 54 B | 0755 |
|
| rubygc-bpfcc | File | 52 B | 0755 |
|
| rubyobjnew-bpfcc | File | 56 B | 0755 |
|
| rubystat-bpfcc | File | 54 B | 0755 |
|
| runlevel | File | 1.43 MB | 0755 |
|
| runqlat-bpfcc | File | 9.3 KB | 0755 |
|
| runqlat.bt | File | 788 B | 0755 |
|
| runqlen-bpfcc | File | 8.05 KB | 0755 |
|
| runqlen.bt | File | 1.01 KB | 0755 |
|
| runqslower-bpfcc | File | 9.01 KB | 0755 |
|
| runuser | File | 54.38 KB | 0755 |
|
| service | File | 8.89 KB | 0755 |
|
| setcap | File | 14.3 KB | 0755 |
|
| setuids.bt | File | 1.76 KB | 0755 |
|
| setvesablank | File | 14.37 KB | 0755 |
|
| setvtrgb | File | 14.43 KB | 0755 |
|
| sfdisk | File | 106.38 KB | 0755 |
|
| sgdisk | File | 178.48 KB | 0755 |
|
| shadowconfig | File | 2.22 KB | 0755 |
|
| shmsnoop-bpfcc | File | 7.8 KB | 0755 |
|
| shutdown | File | 1.43 MB | 0755 |
|
| slabratetop-bpfcc | File | 6.38 KB | 0755 |
|
| sofdsnoop-bpfcc | File | 8.06 KB | 0755 |
|
| softirqs-bpfcc | File | 5.59 KB | 0755 |
|
| solisten-bpfcc | File | 5.96 KB | 0755 |
|
| split-logfile | File | 2.36 KB | 0755 |
|
| sshd | File | 899.82 KB | 0755 |
|
| ssllatency.bt | File | 2.08 KB | 0755 |
|
| sslsniff-bpfcc | File | 13.68 KB | 0755 |
|
| sslsnoop.bt | File | 1.99 KB | 0755 |
|
| stackcount-bpfcc | File | 16.26 KB | 0755 |
|
| start-stop-daemon | File | 47.49 KB | 0755 |
|
| statsnoop-bpfcc | File | 4.92 KB | 0755 |
|
| statsnoop.bt | File | 1.26 KB | 0755 |
|
| sudo_logsrvd | File | 248.5 KB | 0755 |
|
| sudo_sendlog | File | 131.67 KB | 0755 |
|
| sulogin | File | 42.38 KB | 0755 |
|
| swapin.bt | File | 600 B | 0755 |
|
| swaplabel | File | 18.38 KB | 0755 |
|
| swapoff | File | 22.38 KB | 0755 |
|
| swapon | File | 42.38 KB | 0755 |
|
| switch_root | File | 22.38 KB | 0755 |
|
| syncsnoop-bpfcc | File | 1.27 KB | 0755 |
|
| syncsnoop.bt | File | 839 B | 0755 |
|
| syscount-bpfcc | File | 8.57 KB | 0755 |
|
| syscount.bt | File | 872 B | 0755 |
|
| sysctl | File | 30.38 KB | 0755 |
|
| tarcat | File | 936 B | 0755 |
|
| tc | File | 630.08 KB | 0755 |
|
| tclcalls-bpfcc | File | 54 B | 0755 |
|
| tclflow-bpfcc | File | 53 B | 0755 |
|
| tclobjnew-bpfcc | File | 55 B | 0755 |
|
| tclstat-bpfcc | File | 53 B | 0755 |
|
| tcpaccept-bpfcc | File | 9 KB | 0755 |
|
| tcpaccept.bt | File | 1.71 KB | 0755 |
|
| tcpcong-bpfcc | File | 20.11 KB | 0755 |
|
| tcpconnect-bpfcc | File | 18.46 KB | 0755 |
|
| tcpconnect.bt | File | 1.58 KB | 0755 |
|
| tcpconnlat-bpfcc | File | 9.07 KB | 0755 |
|
| tcpdrop-bpfcc | File | 7.44 KB | 0755 |
|
| tcpdrop.bt | File | 2.41 KB | 0755 |
|
| tcplife-bpfcc | File | 16.55 KB | 0755 |
|
| tcplife.bt | File | 2.72 KB | 0755 |
|
| tcpretrans-bpfcc | File | 13.77 KB | 0755 |
|
| tcpretrans.bt | File | 2.07 KB | 0755 |
|
| tcprtt-bpfcc | File | 8.7 KB | 0755 |
|
| tcpstates-bpfcc | File | 13.73 KB | 0755 |
|
| tcpsubnet-bpfcc | File | 7.63 KB | 0755 |
|
| tcpsynbl-bpfcc | File | 2.12 KB | 0755 |
|
| tcpsynbl.bt | File | 962 B | 0755 |
|
| tcptop-bpfcc | File | 12.64 KB | 0755 |
|
| tcptracer-bpfcc | File | 17.71 KB | 0755 |
|
| telinit | File | 1.43 MB | 0755 |
|
| thermald | File | 526.73 KB | 0755 |
|
| thin_check | File | 1.36 MB | 0755 |
|
| thin_delta | File | 1.36 MB | 0755 |
|
| thin_dump | File | 1.36 MB | 0755 |
|
| thin_ls | File | 1.36 MB | 0755 |
|
| thin_metadata_size | File | 1.36 MB | 0755 |
|
| thin_repair | File | 1.36 MB | 0755 |
|
| thin_restore | File | 1.36 MB | 0755 |
|
| thin_rmap | File | 1.36 MB | 0755 |
|
| thin_trim | File | 1.36 MB | 0755 |
|
| threadsnoop-bpfcc | File | 1.81 KB | 0755 |
|
| threadsnoop.bt | File | 712 B | 0755 |
|
| tipc | File | 90.52 KB | 0755 |
|
| tplist-bpfcc | File | 4.06 KB | 0755 |
|
| trace-bpfcc | File | 42.86 KB | 0755 |
|
| tsig-keygen | File | 22.3 KB | 0755 |
|
| ttysnoop-bpfcc | File | 7.51 KB | 0755 |
|
| tune2fs | File | 110.56 KB | 0755 |
|
| u-d-c-print-pci-ids | File | 517 B | 0755 |
|
| ucalls | File | 11.69 KB | 0755 |
|
| uflow | File | 7.92 KB | 0755 |
|
| ugc | File | 7.64 KB | 0755 |
|
| umount.udisks2 | File | 14.3 KB | 0755 |
|
| undump.bt | File | 789 B | 0755 |
|
| unix_chkpwd | File | 30.31 KB | 2755 |
|
| unix_update | File | 34.31 KB | 0755 |
|
| uobjnew | File | 6.04 KB | 0755 |
|
| update-ca-certificates | File | 5.32 KB | 0755 |
|
| update-catalog | File | 9.17 KB | 0755 |
|
| update-fonts-alias | File | 5.71 KB | 0755 |
|
| update-fonts-dir | File | 3.98 KB | 0755 |
|
| update-fonts-scale | File | 6.1 KB | 0755 |
|
| update-grub | File | 64 B | 0755 |
|
| update-grub-gfxpayload | File | 301 B | 0755 |
|
| update-grub2 | File | 64 B | 0755 |
|
| update-gsfontmap | File | 390 B | 0755 |
|
| update-ieee-data | File | 3.41 KB | 0755 |
|
| update-info-dir | File | 1.66 KB | 0755 |
|
| update-initramfs | File | 6.75 KB | 0755 |
|
| update-locale | File | 2.99 KB | 0755 |
|
| update-passwd | File | 34.56 KB | 0755 |
|
| update-pciids | File | 1.74 KB | 0755 |
|
| update-rc.d | File | 17.72 KB | 0755 |
|
| update-shells | File | 3.89 KB | 0755 |
|
| update-xmlcatalog | File | 16.88 KB | 0755 |
|
| upgrade-from-grub-legacy | File | 1.56 KB | 0755 |
|
| usb_modeswitch | File | 59.66 KB | 0755 |
|
| usb_modeswitch_dispatcher | File | 26.78 KB | 0755 |
|
| usbmuxd | File | 90.6 KB | 0755 |
|
| useradd | File | 139.88 KB | 0755 |
|
| userdel | File | 91.01 KB | 0755 |
|
| usermod | File | 127.65 KB | 0755 |
|
| ustat | File | 12.12 KB | 0755 |
|
| uthreads | File | 4 KB | 0755 |
|
| uuidd | File | 30.88 KB | 0755 |
|
| validlocale | File | 1.73 KB | 0755 |
|
| vcstime | File | 14.3 KB | 0755 |
|
| vdpa | File | 34.56 KB | 0755 |
|
| veritysetup | File | 43.94 KB | 0755 |
|
| vfscount-bpfcc | File | 1.36 KB | 0755 |
|
| vfscount.bt | File | 515 B | 0755 |
|
| vfsstat-bpfcc | File | 4.06 KB | 0755 |
|
| vfsstat.bt | File | 721 B | 0755 |
|
| vgcfgbackup | File | 3.01 MB | 0755 |
|
| vgcfgrestore | File | 3.01 MB | 0755 |
|
| vgchange | File | 3.01 MB | 0755 |
|
| vgck | File | 3.01 MB | 0755 |
|
| vgconvert | File | 3.01 MB | 0755 |
|
| vgcreate | File | 3.01 MB | 0755 |
|
| vgdisplay | File | 3.01 MB | 0755 |
|
| vgexport | File | 3.01 MB | 0755 |
|
| vgextend | File | 3.01 MB | 0755 |
|
| vgimport | File | 3.01 MB | 0755 |
|
| vgimportclone | File | 3.01 MB | 0755 |
|
| vgmerge | File | 3.01 MB | 0755 |
|
| vgmknodes | File | 3.01 MB | 0755 |
|
| vgreduce | File | 3.01 MB | 0755 |
|
| vgremove | File | 3.01 MB | 0755 |
|
| vgrename | File | 3.01 MB | 0755 |
|
| vgs | File | 3.01 MB | 0755 |
|
| vgscan | File | 3.01 MB | 0755 |
|
| vgsplit | File | 3.01 MB | 0755 |
|
| vigr | File | 60.69 KB | 0755 |
|
| vipw | File | 60.69 KB | 0755 |
|
| virtiostat-bpfcc | File | 8.69 KB | 0755 |
|
| visudo | File | 252.71 KB | 0755 |
|
| vpddecode | File | 14.58 KB | 0755 |
|
| wakeuptime-bpfcc | File | 8.1 KB | 0755 |
|
| wipefs | File | 38.38 KB | 0755 |
|
| writeback.bt | File | 1.66 KB | 0755 |
|
| xfs_admin | File | 2.12 KB | 0755 |
|
| xfs_bmap | File | 695 B | 0755 |
|
| xfs_copy | File | 90.44 KB | 0755 |
|
| xfs_db | File | 688.56 KB | 0755 |
|
| xfs_estimate | File | 14.16 KB | 0755 |
|
| xfs_freeze | File | 800 B | 0755 |
|
| xfs_fsr | File | 42.18 KB | 0755 |
|
| xfs_growfs | File | 38.23 KB | 0755 |
|
| xfs_info | File | 1.26 KB | 0755 |
|
| xfs_io | File | 203.65 KB | 0755 |
|
| xfs_logprint | File | 78.27 KB | 0755 |
|
| xfs_mdrestore | File | 34.23 KB | 0755 |
|
| xfs_metadump | File | 816 B | 0755 |
|
| xfs_mkfile | File | 1.02 KB | 0755 |
|
| xfs_ncheck | File | 685 B | 0755 |
|
| xfs_quota | File | 90.16 KB | 0755 |
|
| xfs_repair | File | 643.32 KB | 0755 |
|
| xfs_rtcp | File | 18.15 KB | 0755 |
|
| xfs_scrub | File | 106.27 KB | 0755 |
|
| xfs_scrub_all | File | 7.66 KB | 0755 |
|
| xfs_spaceman | File | 42.3 KB | 0755 |
|
| xfsdist-bpfcc | File | 4.61 KB | 0755 |
|
| xfsdist.bt | File | 972 B | 0755 |
|
| xfsslower-bpfcc | File | 7.78 KB | 0755 |
|
| xtables-legacy-multi | File | 92.95 KB | 0755 |
|
| xtables-monitor | File | 219.16 KB | 0755 |
|
| xtables-nft-multi | File | 219.16 KB | 0755 |
|
| zerofree | File | 14.15 KB | 0755 |
|
| zfsdist-bpfcc | File | 5.3 KB | 0755 |
|
| zfsslower-bpfcc | File | 8.45 KB | 0755 |
|
| zic | File | 66.39 KB | 0755 |
|
| zramctl | File | 54.52 KB | 0755 |
|