Não. Pelo menos esse é o caso do Debian, que usa o Vixie cron. cron(8)
tem isto a dizer sobre o diretório cron.d:
The intended purpose of this feature is to allow packages that require finer control of their scheduling than the /etc/cron.{daily,weekly,monthly} directories to add a crontab file to /etc/cron.d. Such files should be named after the package that supplies them. Files must conform to the same naming convention as used by run-parts(8): they must consist solely of upper- and lower-case letters, digits, underscores, and hyphens.
Isso claramente não suporta recursão em subdiretórios. Outros daemons cron podem suportar isso, suponho.
Se você estiver usando um daemon cron que não suporta isso, como provavelmente está fazendo na maioria dos sistemas Linux, eu acho que sua melhor opção pode ser um script simples que usa uma árvore de arquivos de configuração, digamos, /usr/local/etc/local-crons/
e concatena-os juntos em arquivos únicos em /etc/cron.d
.
Por exemplo, digamos que você tenha os seguintes arquivos:
-
/usr/local/etc/local-crons/monitoring/foo.cron
-
/usr/local/etc/local-crons/monitoring/bar.cron
-
/usr/local/etc/local-crons/removals/baz.cron
-
/usr/local/etc/local-crons/removals/quux.cron
Seu script, em seguida, processa a árvore de diretórios /usr/local/etc/local-crons/
e cria os seguintes arquivos:
-
/etc/cron.d/local-crons-monitoring
-
/etc/cron.d/local-crons-removals
local-crons-monitoring
conteria o conteúdo de foo.cron
e bar.cron
; local-crons-removals
conteria o conteúdo de baz.cron
e quux.cron
.
Se você quisesse se interessar, seu script poderia facilmente verificar a hora da última modificação dos arquivos .cron
e compará-lo com a hora da última modificação do arquivo relevante em /etc/cron.d/
para ver se ele tem algum trabalho para fazer. Então, isso também pode ser feito.
Acho que é assim que eu faria de qualquer maneira.