cron
parece inadequado para isso; uma hora após a conclusão da execução anterior pode ser feita através de um while
loop
#!/bin/sh
while :; do
some_job_that_takes_a_while
sleep 3600
done
ou agendando a próxima execução em uma hora por meio de at(1)
no final do trabalho.
$ cat atat
#!/bin/sh
echo running the job
echo $HOME/atat | at now + 1 hours
$ ./atat
running the job
job 4 at 2015-09-30 17:00
$ date
Wed Sep 30 16:00:19 UTC 2015
$
Pode ser necessário haver verificações de integridade ou um timeout
no trabalho, caso ele seja interrompido e, assim, nenhum trabalho subseqüente seja executado até que alguém o mate manualmente e reinicie as coisas.