Ich weiß, wie man jede Minute macht, aber wie sieht es alle 10 Sekunden aus?
14
Sie können den Job nicht alle zehn Sekunden einplanen, aber ich nehme an, Sie können den Job so einplanen, dass er jede Minute ausgeführt wird und in 10-Sekunden-Intervallen in einer Schleife ruht. Dies würde vorausgesetzt, dass Ihr Befehl abgeschlossen ist, bevor das Zehn-Sekunden-Intervall abläuft, oder dass Sie eine Überlappung erhalten, wenn der nächste Befehl ausgeführt wird. Dies fühlt sich wie eine prekäre Lösung an, aber wenn Sie eine sehr kurze Ausführung des Hauptbefehls des Skripts garantieren können, würde dies funktionieren.
#!/bin/bash
i=0
while [ $i -lt 6 ]; do
/run/your/command &
sleep 10
i=$(( i + 1 ))
done
Ich hatte letzte Woche eine ähnliche Aufgabe. Meine Lösung bestand darin, die Standard-Cron-Einträge mit der gewünschten Frequenz zu multiplizieren. Meine Crontab sieht so aus:
Wenn Sie die Ergebnisse von myscript.php überprüfen möchten, zB zum Debuggen, hängen Sie einfach an
zu jeder Zeile in der Crontab oben. Dann werden stderr und stdout in die Protokolldatei umgeleitet.
quelle
Ich würde Monit verwenden und die Zykluszeit auf 10 Sekunden einstellen. Dies ist eine saubere Möglichkeit, dies außerhalb des Cron-Systems zu verwalten.
Ich mache dies mit bestimmten Skripten, die in einem Intervall von 15 Sekunden ausgeführt werden müssen.
Siehe: So führen Sie inkrementelle / kontinuierliche Sicherungen des zfs-Pools durch
quelle
Cron lässt nur mindestens eine Minute zu. Sie können dies versuchen -
quelle
Wenn Sie unter 10 Sekunden gehen möchten, z. B. 5 Sekunden, empfehle ich, eine Worker-Schleife mit einem kleinen Skript wie diesem zu erstellen:
Wenn Sie weniger als eine Sekunde benötigen, fügen Sie dem Datumsbefehl Mikrosekunden hinzu.
quelle
run every 10 seconds
wesentlich von den vorhandenen Antworten ab, die mindestens jede Minute synchronisiert werden.Hier kann das Skript im Abstand von 10 Sekunden ausgeführt werden ...
quelle