At(3pm)

πŸ“¦
version 1.15 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble

πŸ’– At(3pm) πŸ’–

okay bestie, welcome to the manual page for Schedule::At, which is the whole OS independent interface to the Unix at command situation. yes, THE at. the one that lets you fire off commands at a specified time like a little time-traveling group chat. πŸ•°οΈβœ¨


✨ SYNOPSIS ✨

require Schedule::At;

Schedule::At::add(TIME => $string, COMMAND => $string [, TAG =>$string]);
Schedule::At::add(TIME => $string, COMMAND => \@array [, TAG =>$string]);
Schedule::At::add(TIME => $string, FILE => $string)

%jobs = Schedule::At::getJobs();
%jobs = Schedule::At::getJobs(JOBID => $string);
%jobs = Schedule::At::getJobs(TAG => $string);

Schedule::At::readJobs(JOBID => $string);
Schedule::At::readJobs(TAG => $string);

Schedule::At::remove(JOBID => $string);
Schedule::At::remove(TAG => $string);

🌸 DESCRIPTION 🌸

so basically this module gives you an OS independent interface to at, the Unix command that lets you execute commands at a specified time. no cap, that's the whole vibe. πŸ¦‹

Schedule::At::add

adds a new job to the at queue. πŸ’…

you have to specify a TIME and a command to execute. the TIME has a common format: YYYYMMDDHHmm where YYYY is the year (4 digits), MM the month (01-12), DD is the day (01-31), HH the hour (00-23) and mm the minutes.

the command gets passed with the COMMAND or the FILE parameter. COMMAND can be used to pass the command as an string, or an array of commands, and FILE to read the commands from a file. πŸ“„

the optional parameter TAG serves as an application specific way to identify a job or a set of jobs. lowkey so useful.

returns 0 on success or a value != 0 if an error occurred.

Schedule::At::readJobs

read the job content identified by the JOBID or TAG parameters. πŸ‘€

returns a hash of JOBID => $string where $string is the the job content. and heads up bestie: as the operating systems usually add a few environment settings, the content is longer than the command provided when adding the job. not a bug, just how it is. πŸ™ˆ

Schedule::At::remove

remove an at job. bye bye πŸ‘‹

you identify the job to be deleted using the JOBID parameter (an opaque string returned by the getJobs subroutine). you can also specify a job or a set of jobs to delete with the TAG parameter, removing all the jobs that have the same tag (as specified with the add subroutine).

used with JOBID, returns 0 on success or a value != 0 if an error occurred. used with TAG, returns a hash reference where the keys are the JOBID of the jobs found and the values indicate the success of the remove operation.

Schedule::At::getJobs

called with no params returns a hash with all the current jobs, or dies if an error has occurred. πŸ’€ it's possible to specify the TAG or JOBID parameters so only matching jobs are returned. for each job the key is a JOBID (an OS dependent string that shouldn't be interpreted), and the value is a hash reference.

this hash reference points to a hash with the keys:

TIME

an OS dependent string specifying the time to execute the command

TAG

the tag specified in the Schedule::At::add subroutine


πŸŽ€ Configuration Variables πŸŽ€

  • $Schedule::At::SHELL β€” this variable can be used to specify shell for execution of the scheduled command. can be useful for example when scheduling from CGI script and the account of the user under which httpd runs is locked by using /bin/false or similar as a shell. 🐚

🌈 EXAMPLES 🌈

use Schedule::At;

# 1
Schedule::At::add (TIME => '199801181530', COMMAND => 'ls',
       TAG => 'ScheduleAt');
# 2
@cmdlist = ("ls", "echo hello world");

Schedule::At::add (TIME => '199801181630', COMMAND => \@cmdlist,
       TAG => 'ScheduleAt');
# 3
Schedule::At::add (TIME => '199801181730', COMMAND => 'df');

# This will remove #1 and #2 but no #3
Schedule::At::remove (TAG => 'ScheduleAt');

my %atJobs = Schedule::At::getJobs();
foreach my $job (values %atJobs) {
       print "\t", $job->{JOBID}, "\t", $job->{TIME}, ' ',
               ($job->{TAG} || ''), "\n";
}

πŸ‘‘ AUTHOR πŸ‘‘

Jose A. Rodriguez (jose AT rodriguez.jp)


and that's the whole page bestie, you ate that. 🫢 the source/version is perl v5.32.0 and it's dated 2021-01-03, so go forth and schedule your little commands, icon. periodt. πŸ’œβœ¨πŸŽ€
πŸ“¦ where this page comes from