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 に答える