如何使用perl修改crontab?

Cra*_*lus 2 perl cron crontab cron-task

我怎么能通过perl脚本在crontab中附加一个cron任务?
我想到了以下几点:

#!/usr/bin/perl  

use strict;  
use warnings;  

`crontab<<EOL  
00 * * * * /home/slynux/download.sh    
EOL`  
Run Code Online (Sandbox Code Playgroud)

我不想搞砸东西,所以我走在正确的轨道上吗?
如果我追加它,我该如何删除它?我是Perl的新手

Gil*_*not 5

快速和肮脏的方式:

#!/usr/bin/perl  

use strict; use warnings;  

`(crontab -l; echo "00 * * * * /home/slynux/download.sh") | crontab -`;
Run Code Online (Sandbox Code Playgroud)

另一种(更好的)方法:

#!/usr/bin/perl  

use strict; use warnings;  

open my $fh, "| crontab -" || die "can't open crontab: $!";
my $cron = qx(crontab -l);
print $fh "$cron\n0 * * * * /home/slynux/download.sh\n";
close $fh;
Run Code Online (Sandbox Code Playgroud)

要删除crontab行,请执行以下操作/home/slynux/download.sh:

#!/usr/bin/perl  

use strict; use warnings;

open my $fh, "| crontab -" || die "can't open crontab: $!";
my $cron = qx(crontab -l);
$cron =~ s!.*/home/slynux/download\.sh.*!!g;
print $fh $cron;
close $fh;
Run Code Online (Sandbox Code Playgroud)