Private
Server IP : 195.201.23.43  /  Your IP : 13.59.203.127
Web Server : Apache
System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64
User : kdecoratie ( 1041)
PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/usermin/cron/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/usermin/cron/save_cron.cgi
#!/usr/bin/perl
# save_cron.cgi
# Save an existing cron job, or create a new one

require './cron-lib.pl';
&error_setup($text{'save_err'});
&ReadParse();

@jobs = &list_cron_jobs();
if ($in{'new'}) {
	$access{'create'} || &error($text{'save_ecannot2'});
	$job = { 'type' => 0 };
	}
else {
	$oldjob = $jobs[$in{'idx'}];
	$job->{'type'} = $oldjob->{'type'};
	$job->{'file'} = $oldjob->{'file'};
	$job->{'line'} = $oldjob->{'line'};
	$job->{'nolog'} = $oldjob->{'nolog'};
	}

# Check if this user is allowed to execute cron jobs
if (&supports_users()) {
	&can_use_cron($in{'user'}) ||
		&error(&text('save_eallow', &html_escape($in{'user'})));
	}

# Check module access control
&can_edit_user(\%access, $in{'user'}) ||
	&error(&text('save_ecannot', &html_escape($in{'user'})));

@files = &unique((map { $_->{'file'} } @jobs),
	         "$config{'cron_dir'}/$in{'user'}");
foreach $f (@files) { &lock_file($f); }

# Check and parse inputs
if ($in{"cmd"} !~ /\S/ && $access{'command'}) {
	&error($text{'save_ecmd'});
	}
if (&supports_users()) {
	if (!$in{'user'}) {
		&error($text{'save_euser'});
		}
	if (!defined(getpwnam($in{'user'}))) {
		&error(&text('save_euser2', &html_escape($in{'user'})));
		}
	}
&parse_times_input($job, \%in);
$in{input} =~ s/\r//g; $in{input} =~ s/%/\\%/g;
$in{cmd} =~ s/%/\\%/g;
$job->{'active'} = $in{'active'};
if ($access{'command'}) {
	$job->{'command'} = $in{'cmd'};
	if ($in{input} =~ /\S/) {
		@inlines = split(/\n/ , $in{input});
		$job->{'command'} .= '%'.join('%' , @inlines);
		}
	}
else {
	$job->{'command'} = $oldjob->{'command'};
	}

if (&supports_users()) {
	$job->{'user'} = $in{'user'};
	}

if (defined($in{'range_def'})) {
	# Save range to run
	&parse_range_input($job, \%in);
	&unconvert_range($job);
	}

$job->{'comment'} = $in{'comment'};
&unconvert_comment($job);

if (!$in{'new'}) {
	# Editing an existing job
	&can_edit_user(\%access, $oldjob->{'user'}) ||
		&error(&text('save_ecannot', $oldjob->{'user'}));
	if ($job->{'user'} eq $oldjob->{'user'}) {
		&change_cron_job($job);
		}
	else {
		&delete_cron_job($oldjob);
		&create_cron_job($job);

		# Find new index, which will change due to user move
		undef(@cron_jobs_cache);
		$in{'idx'} = undef;
		foreach $newjob (&list_cron_jobs()) {
			if ($newjob->{'user'} eq $job->{'user'} &&
			    $newjob->{'active'} eq $job->{'active'} &&
			    $newjob->{'command'} eq $job->{'command'}) {
				$in{'idx'} = $newjob->{'index'};
				}
			}
		}
	}
else {
	# Creating a new job
	&create_cron_job($job);
	}

foreach $f (@files) { &unlock_file($f); }
if ($in{'new'}) {
	&webmin_log("create", "cron", $in{'user'}, \%in);
	}
else {
	&webmin_log("modify", "cron", $in{'user'}, \%in);
	}

if ($in{'saverun'}) {
	# Redirect to execute form
	defined($in{'idx'}) || &error($text{'save_eidx'});
	&redirect("exec_cron.cgi?idx=$in{'idx'}");
	}
else {
	# Just go back to main menu
	&redirect("index.cgi?search=".&urlize($in{'search'}));
	}


Private