http://www.perlmonks.org?node_id=471762


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


Update:

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.


-Waswas