2

如何通过 perl 脚本在 crontab 中附加 cron 任务?
我想到了以下几点:

#!/usr/bin/perl  

use strict;  
use warnings;  

`crontab<<EOL  
00 * * * * /home/slynux/download.sh    
EOL`  

我不想搞砸事情,所以我在正确的轨道上吗?
另外,如果我附加它,我将如何删除它?我是 Perl 新手

4

2 回答 2

5

快速而肮脏的方式:

#!/usr/bin/perl  

use strict; use warnings;  

`(crontab -l; echo "00 * * * * /home/slynux/download.sh") | crontab -`;

另一种(更好的)方法:

#!/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;

用删除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;
于 2013-08-08T18:41:20.330 回答
0

metacpan上快速搜索会返回Config::Crontab。虽然我从未使用过这个模块,但它看起来会做你想做的事。

于 2013-08-09T07:17:40.013 回答