如何通过perl脚本在crontab中附加cron任务?
我想到了以下几点:
#!/usr/bin/perl
use strict;
use warnings;
`crontab<<EOL
00 * * * * /home/slynux/download.sh
EOL`
我不想搞砸东西,所以我走在正确的轨道上吗? 如果我追加它,我该如何删除它?我是Perl的新人
答案 0 :(得分:5)
快速&amp;肮脏的方式:
#!/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;
答案 1 :(得分:0)
快速搜索metacpan会返回Config::Crontab。虽然我从未使用过这个模块,但它看起来会像你想要的那样。