Einmalige Aufgaben mit at
at führt Befehle einmalig zu einem bestimmten Zeitpunkt aus. Der Daemon
atd läuft im Hintergrund und arbeitet die geplanten Jobs ab.
Installation
Abschnitt betitelt „Installation“at ist nicht immer vorinstalliert:
sudo apt install atsudo systemctl enable --now atdsudo dnf install atsudo systemctl enable --now atdsudo zypper install atsudo systemctl enable --now atdAufgaben planen
Abschnitt betitelt „Aufgaben planen“at 02:00 # heute um 02:00 Uhrat 02:00 tomorrow # morgen um 02:00 Uhrat 14:30 Jul 4 # am 4. Juli um 14:30 Uhrat now + 1 hour # in einer Stundeat now + 30 minutesat now + 2 daysat midnight # um Mitternachtat noon # um 12:00 Uhrat teatime # um 16:00 UhrNach der Zeitangabe öffnet sich ein interaktiver Prompt. Befehle eingeben,
mit Strg+D abschließen:
at 02:00at> /usr/local/bin/backup.shat> systemctl restart nginxat> <Strg+D>job 3 at Mon Mar 24 02:00:00 2026Aus einer Datei oder Pipeline
Abschnitt betitelt „Aus einer Datei oder Pipeline“# Aus Dateiat 02:00 < /etc/meine-aufgaben.sh
# Per Pipeline (heredoc)at now + 1 hour << 'EOF'/usr/local/bin/backup.sh >> /var/log/backup.log 2>&1EOFGeplante Jobs verwalten
Abschnitt betitelt „Geplante Jobs verwalten“atq # alle ausstehenden Jobs anzeigen (auch: at -l)at -c 3 # Inhalt von Job 3 anzeigenatrm 3 # Job 3 löschen (auch: at -r 3)Beispiel atq-Ausgabe:
3 Mon Mar 24 02:00:00 2026 a micha4 Tue Mar 25 14:30:00 2026 a rootSpalten: Job-Nummer, Zeitpunkt, Queue (a = at), Benutzer
batch — bei niedriger Systemlast
Abschnitt betitelt „batch — bei niedriger Systemlast“batch funktioniert wie at, wartet aber bis die durchschnittliche Systemlast
unter einen Schwellwert fällt (Standard: 1.5). Praktisch für ressourcenintensive
Aufgaben, die nicht zeitkritisch sind:
batch << 'EOF'nice -n 19 /usr/local/bin/schwerer-job.shEOFZugriffssteuerung
Abschnitt betitelt „Zugriffssteuerung“atd prüft zwei Dateien:
| Datei | Bedeutung |
|---|---|
/etc/at.allow | Nur diese Benutzer dürfen at verwenden |
/etc/at.deny | Diese Benutzer dürfen at nicht verwenden |
Wenn /etc/at.allow existiert, darf nur wer darin steht. Wenn nur /etc/at.deny
existiert, darf jeder außer den gelisteten. Existiert keine der beiden Dateien,
darf nur root.
# Benutzer "anna" erlauben:echo "anna" | sudo tee -a /etc/at.allow