Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Getting Config::Crontab to Write File to Crontab Command

by waswas-fng (Curate)
on Jul 01, 2005 at 15:59 UTC ( #471762=note: print w/replies, xml ) Need Help??

in reply to Getting Config::Crontab to Write File to Crontab Command

Config::Crontab's POD does have a long example for how to read/write users crontabs in it...
$c = new Config::Crontab; $c->owner('joe'); $c->read; ## reading joe's crontab $c->write; ##write out to joe's crontab... $c->owner('bob'); #change user to bob $c->write; #write same crontab to bob's crontab


It does look as though Config::Crontab handles restarting crontab and setting other user's crontabs via the system crontab command -- but looking though the code a few things you need to be aware of:

1: As you can see below the crontab command is not absolute -- you should make sure your PATH is set correctly before calling this write function -- or better yet modify Config::Crontab to use a setting to define where crontab exists on the filesystem (and maybe submit a patch).
my $crontab; if( my $owner = $self->owner ) { $crontab = `crontab -u $owner $tmpfile 2>&1`; } else { $crontab = `crontab $tmpfile 2>&1`; } chomp $crontab; unlink $tmpfile; if( $crontab || $? ) { $self->error($crontab); if( $self->strict ) { carp "Error writing crontab (crontab exited with status " . ($? >> 8) . "): " . $self->error; } return; } } return 1; }
2: The Module does not check if you are root before trying to update any users crontab -- if you are modding users crontabs other than your running UID, you should run as root and also verify the script is running as root before you call the writes.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://471762]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (2)
As of 2018-07-22 01:22 GMT
Find Nodes?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?

    Results (451 votes). Check out past polls.