Minha pergunta:
Eu tenho uma instrução if em perl onde tento detectar por meio de variáveis de ambiente no momento de iniciar o script perl se ele foi iniciado por meio de um cron job ou por meio de execução normal por meio do shell.
Existe alguma maneira de definir uma variável de ambiente no próprio crontab que um programa iniciado pelo cron possa acessar?
Essencialmente, quero isso no topo do meu crontab:
COMPANYCRON=1
* * * * * someperl.pl
E em someperl.pl esta instrução if:
if ( $ENV{'COMPANYCRON'} eq '1' ) {
$job_creator = "cron";
}
Existe uma maneira de fazer isso? Ou uma abordagem melhor para acompanhar os cron jobs?
Responder1
Alguns daemons cron (por exemplo, Vixie cron no Debian/Ubuntu) permitem exatamente a mesma sintaxe que você escreveu no seu exemplo. Em outros sistemas (RHEL etc.), use algo assim no seu crontab:
* * * * * export COMPANYCRON=1; someperl.pl