btrfs läuft nicht von cron aus

0

Ich versuche, einen Cron-Job einzurichten, um einen Btrfs-Subvolume-Snapshot meiner Root-Partition zu erstellen. Der Befehl funktioniert einwandfrei, wenn ich ihn über die Befehlszeile ausführe, aber zur geplanten Cron-Zeit passiert nichts. Ich habe versucht, zu pfeifen logger und stdout / stderr in eine Datei umleiten, und es gibt nicht nur keinen Inhalt, die Datei, in die ich mich anmelde, wird auch nicht erstellt.

Der Cron-Befehl, den ich habe, lautet wie folgt:

0 0 * * * /sbin/btrfs subvolume snapshot / "/snapshots/$(date +%Y-%m-%d)"

Ich habe versucht, es mit einem Präfix zu versehen /bin/bash, aber das macht keinen Unterschied. Was vermisse ich?

Mikkel
quelle
Bist du sicher, dass cron läuft? Überprüfen Sie die Ausgabe von ls -l | grep cron für etwas wie / usr / bin / crond. Wenn Ihr einziger Prozess angezeigt wird, ist grep cron oder vielleicht grep --color=auto cron dann ist es nicht. Sie müssen das starten cron Server mit welcher Methode auch immer Ihre disto die Server verwaltet. service cron start arbeitet an einer Reihe von beliebten Distributionen.
0xDAFACADE
Ja, aber cron läuft ls -l | grep cron ist nicht der Befehl, mir das zu sagen. pgrep cron hat eine PID zurückgegeben. Ich habe auch einen Job hinzugefügt * * * * * touch /root/foo, was wie erwartet funktioniert hat.
Mikkel

Antworten:

0

Ich habe nie herausgefunden, was mit dem Cron-Eintrag nicht stimmte, aber ich habe nur ein Shell-Skript geschrieben, um den Snapshot zu erstellen, und das stattdessen von Cron aus aufgerufen.

#!/usr/bin/env bash
/sbin/btrfs subvolume snapshot / "/snapshots/$(date +%Y-%m-%d)"
touch  "/snapshots/$(date +%Y-%m-%d)"
find /snapshots/* -maxdepth 0 -mtime +6 | xargs -n 1 /sbin/btrfs subvolume delete
Mikkel
quelle