GIF89a; Mini Shell

Mini Shell

Direktori : /scripts/
Upload File :
Current File : //scripts/dnsqueuecron

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

# cpanel - scripts/dnsqueuecron                    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

exit unless ( -x '/usr/bin/crontab' );

my $crontab       = `/usr/bin/crontab -l`;
my $old_cron_line = '*/15 * * * * /usr/local/cpanel/whostmgr/bin/dnsqueue > /dev/null 2>&1';

exit if ( $crontab =~ /dnsqueue/i && $crontab !~ /\Q$old_cron_line\E/ );

my $time          = int( rand(15) );
my $timespec      = $time . ',' . ( $time + 15 ) . ',' . ( $time + 30 ) . ',' . ( $time + 45 );
my $new_cron_line = $timespec . ' * * * * /usr/local/cpanel/whostmgr/bin/dnsqueue > /dev/null 2>&1';

my @CRONTAB = split( /\n/, $crontab );

# Case 8514 implies this is still necessary on some systems
@CRONTAB = grep( !/^#/, @CRONTAB );

open( CRONTAB, "|/usr/bin/crontab -" );
my $updated = 0;

foreach my $line (@CRONTAB) {
    if ( $line =~ /\Q$old_cron_line\E/ ) {
        $line =~ s/\Q$old_cron_line\E/$new_cron_line/;
        $updated = 1;
    }
    print CRONTAB $line . "\n";
}

unless ($updated) {
    print CRONTAB $new_cron_line . "\n";
}

close(CRONTAB);

./BlackJoker Mini Shell 1.0