Basta usar caminhos absolutos. Cronjobs são executados em um ambiente mínimo. A variável PATH pode não conter o que você espera.
Além disso: Configure o sudo. Sua abordagem atual dificilmente é ideal.
Eu tenho um script que é executado em um cronjob como root. O problema é que o comando addgroup produziria "Comando não encontrado" quando for executado pelo script.
#!/usr/bin/perl
$datei = 'ls /var/www/cron/';
@datei = split(/\n/, $datei);
foreach ( @datei ) {
$datei = $_;
open(bfh,"</var/www/cron/$datei") or die $!;
while ( <bfh> ) {
chomp($_);
print "$_\n";
system("$_\n");
}
#unlink("/var/www/cron/$datei") or die $!;
}
Crontab
* * * * * /usr/bin/perl /home/hermes/cron.pl >> /home/hermes/cronlog
2>> /home/hermes/cronerr