cron
звучит неподходящим для этого; через час после завершения предыдущего прогона можно было выполнить либо с помощью цикла while
#!/bin/sh
while :; do
some_job_that_takes_a_while
sleep 3600
done
, либо запланировав следующий прогон через час с помощью в (1)
в конце работа.
$ 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
$
Может потребоваться проверка работоспособности или тайм-аут
для задания, если оно застрянет и, следовательно, никакие последующие задания не будут выполняться, пока кто-то вручную не убьет его и не перезапустит.