Com o próprio cron, não acho que você possa realmente. Eu provavelmente criaria um script dessa maneira: faça um único script executado a partir do cron a cada minuto e, em seguida, execute as tarefas com intervalos separados desse script. Algo parecido com isto:
Entrada do Crontab:
* * * * * /path/to/main_script.sh
e main_script.sh
:
#!/bin/sh
mins=$[ $(date +%s) / 60 ] # current time, rounded to minutes
run_1min_task.sh
if [ $[ $mins % 10 ] -eq 0 ] ; then # mins divisible by 10 ?
run_10min_task.sh # run the every 10 min task
fi
if [ $[ $mins % 60 ] -eq 0 ] ; then # same for 1 hour
run_1hour_task.sh
fi
if [ $[ $mins % 1440 ] -eq 0 ] ; then # 1440 = 24*60
run_daily_task.sh
fi
Você precisa levar em conta o fuso horário, se você se importa com a hora em que a tarefa uma vez por dia é executada, o acima deve ser executado às 00:00 UTC. Compare com algum outro valor que não seja zero para alterá-lo.
Além disso, observe que, se suas tarefas levarem mais de um minuto, você precisará garantir que elas funcionem simultaneamente ou impedir que elas ocorram.