Mini Shell
#!/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' );
}
Zerion Mini Shell 1.0