Se você tiver algum tipo de solução de cluster para fornecer alta disponibilidade, é bastante simples fazer isso.
Nós configuramos todas as tarefas cron em ambos (ou todos) nós em um cluster. Cada trabalho começa executando um pequeno script que funciona se esse é o nó mestre no cluster ou não (verificando o endereço IP flutuante do cluster). Se este não for o nó principal, o script check_for_master é encerrado com um erro que faz com que toda a tarefa do cron falhe. Se esse nó for o mestre, o script check_for_master executará o trabalho como normal.
O conteúdo do script check_for_master realmente depende de qual software de cluster você está usando e do SO que você está executando.
Por exemplo, aqui está uma entrada crontab de amostra:
00 04 * * * /usr/local/bin/check_for_master /usr/local/bin/program-you-want-to-run >/tmp/logfile.out 2>&1