Soluzione 1:
Ho avuto un compito simile la scorsa settimana. La mia soluzione era moltiplicare le voci cron standard alla frequenza desiderata. Il mio crontab è simile a:
* * * * * /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 10; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 20; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 30; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 40; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 50; /usr/local/bin/php /var/www/myscript.php
Se vuoi controllare i risultati di myscript.php, ad es. per il debug, basta aggiungere
&> /tmp/myscipt.log
a ogni riga nel crontab sopra. Quindi stderr e stdout vengono reindirizzati al file di registro.
Soluzione 2:
Non puoi pianificare il lavoro ogni dieci secondi, ma suppongo che potresti programmare l'esecuzione del lavoro ogni minuto e dormire in un ciclo a intervalli di 10 secondi. Ciò si baserebbe sul completamento del comando prima della scadenza dell'intervallo di dieci secondi, oppure si otterrà una sovrapposizione all'esecuzione del comando successivo. Sembra una soluzione precaria, ma se puoi garantire un'esecuzione molto breve del comando principale dello script, funzionerebbe.
#!/bin/bash
i=0
while [ $i -lt 6 ]; do
/run/your/command &
sleep 10
i=$(( i + 1 ))
done