GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie richte ich Cron so ein, dass eine Datei nur einmal zu einem bestimmten Zeitpunkt ausgeführt wird?

Sie möchten unbedingt at verwenden . Es ist genau dafür gemacht.

echo /usr/bin/the_command options | at now + 1 day

Wenn Sie jedoch at nicht haben , oder Ihr Hosting-Unternehmen bietet keinen Zugriff darauf, können Sie einen sich selbst löschenden Cron-Eintrag vornehmen.

Leider werden dadurch alle Ihre Cron-Einträge entfernt. Wenn Sie jedoch nur einen haben, ist dies in Ordnung.

0 0 2 12 * crontab -r ; /home/adm/bin/the_command options

Der Befehl crontab -r entfernt Ihren Crontab-Eintrag. Glücklicherweise wird der Rest der Befehlszeile trotzdem ausgeführt.

WARNUNG:Das ist gefährlich! Es entfernt ALLE Cron-Einträge. Wenn Sie viele haben, werden sie alle entfernt, nicht nur die mit der Zeile "crontab -r"!


Sie möchten unbedingt at verwenden . Es ist genau dafür gemacht.

echo /usr/bin/the_command options | at now + 1 day

Wenn Sie jedoch at nicht haben , oder Ihr Hosting-Unternehmen keinen Zugriff darauf gewährt, können Sie einen Cron-Job mit Code einfügen, der sicherstellt, dass er nur einmal ausgeführt wird.

Richten Sie einen Cron-Eintrag mit einer ganz bestimmten Uhrzeit ein:

0 0 2 12 * /home/adm/bin/the_command options

Als nächstes muss /home/adm/bin/the_command sicherstellen, dass es nur einmal ausgeführt wird.

#! /bin/bash

COMMAND=/home/adm/bin/the_command
DONEYET="${COMMAND}.alreadyrun"

export PATH=/usr/bin:$PATH

if [[ -f $DONEYET ]]; then
  exit 1
fi
touch "$DONEYET"

# Put the command you want to run exactly once here:
echo 'You will only get this once!' | mail -s 'Greetings!' [email protected]

Probieren Sie dies aus, um am 30. März 2011 um Mitternacht einen Befehl auszuführen:

0 0 30 3 ? 2011  /command

WARNUNG :Wie in den Kommentaren erwähnt, das Jahr Spalte wird in Standard-/Standardimplementierungen von cron nicht unterstützt. Bitte lesen Sie die TomOnTime-Antwort unten, um zu erfahren, wie Sie ein Skript zu einem bestimmten Zeitpunkt in der Zukunft in Standardimplementierungen von cron ausführen können.


Linux
  1. So legen Sie einen Cron-Job in TrueNAS fest

  2. Wie richte ich einen Cron-Job ein, um jede Stunde eine ausführbare Datei auszuführen?

  3. So führen Sie ein Shell-Skript beim Start aus

  4. Wie kann ich tcpdump so planen, dass es für einen bestimmten Zeitraum ausgeführt wird?

  5. Wie setze ich eine Datei als NICHT ausführbar?

So richten Sie einen Cron-Job unter Linux ein

Cron-Jobs alle 5, 10 oder 15 Minuten ausführen

So führen Sie einen Befehl für eine bestimmte Zeit in Linux aus

So führen Sie .sh-Dateibefehle auf einmal in Linux aus

So stellen Sie Datum und Uhrzeit unter Linux ein

So richten Sie einen Cron in cPanel ein und führen ihn aus