crontab manuell erstellen
Ich habe ein Script geschrieben, welches automatisiert die cron geschrieben wird, wann welcher Script ausgeführt werden sollte zu welcher Zeit. Jedoch funktioniert das ganze einmal nachdem es mit dem folgendem Befehl ausgeführt wurde:
Danach möchte ich, sobald script.sh fertig durchgelaufen ist wieder aus der crontab automatisch gelöscht haben, jedoch aber nur den Job, welch für den Script benötigt wurde, wenn andere CronJobs vorhanden sind, sollten die anderen CronJobs nicht gelöscht werden.
Ich versuchte es mit diesem Befehl:
Beim ersten versuch, sobald die crontab mit dem befehl gelöscht wurde, funktioniert mein Script, bzw. wird ausgeführt, jedoch beim 2. Versuch funktioniert es nicht mehr
Was muss da getan werden?
cat>> /var/spool/cron/root <<EOF
$StartMinute $StartHours $StartDay $StartMonat * root /script.sh
EOF
Danach möchte ich, sobald script.sh fertig durchgelaufen ist wieder aus der crontab automatisch gelöscht haben, jedoch aber nur den Job, welch für den Script benötigt wurde, wenn andere CronJobs vorhanden sind, sollten die anderen CronJobs nicht gelöscht werden.
Ich versuchte es mit diesem Befehl:
grep -v "$StartMinute $StartHours $StartDay $StartMonat script.sh" /var/spool/cron/root > /var/spool/cron/root.back
mv -f /var/spool/cron/root.back /var/spool/cron/root
Beim ersten versuch, sobald die crontab mit dem befehl
crontab -r
Was muss da getan werden?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 119776
Url: https://administrator.de/contentid/119776
Ausgedruckt am: 14.11.2024 um 13:11 Uhr
11 Kommentare
Neuester Kommentar
Hi,
also z.b. so:
am ende vom Script
awk '!/script.sh/ {print}' file.txt > newcrontab.txt
--- Erklärung: /hierstehtwasdusuchst/ das ! bedeutet nicht also printe (stdout) alle Zeilen die NICHT /suchmuster/ enthalten
crontab newcrontab.txt
-- jetzt wird die Crondatei eingelesen OHNE die mit awk ausgeschnittene
Musst halt nur aufpassen, dass Du nichts erwischt was Du noch brauchst also das Suchmuster nur das gewünschte erwischt!
Gruß
also z.b. so:
am ende vom Script
awk '!/script.sh/ {print}' file.txt > newcrontab.txt
--- Erklärung: /hierstehtwasdusuchst/ das ! bedeutet nicht also printe (stdout) alle Zeilen die NICHT /suchmuster/ enthalten
crontab newcrontab.txt
-- jetzt wird die Crondatei eingelesen OHNE die mit awk ausgeschnittene
Musst halt nur aufpassen, dass Du nichts erwischt was Du noch brauchst also das Suchmuster nur das gewünschte erwischt!
Gruß
Hi,
was steht denn an der Stelle von $StartMinute $StartHours $StartDay $StartMonat ?
WAS funktioniert denn noch nicht - sorry - aber Deine Beschreibung was Du willst ist einfach nicht verständlich z.B: "ah ok demfall" was ist den demfall für ein Wort?
Ohne das man erfährt, was bei den Variablen $StartMinute $StartHours $StartDay $StartMonat gesetzt wird, kann Dir keiner die Frage beantworten. Es kann ja z.B. sein das im Monat ne 5 steht .... dann mußte nur ein wenig geduldig sein - schon gehts
Auch ist ein eventuelles /etc/init.d/crond reload vielleicht nicht wirklich falsch!
Gruß
was steht denn an der Stelle von $StartMinute $StartHours $StartDay $StartMonat ?
WAS funktioniert denn noch nicht - sorry - aber Deine Beschreibung was Du willst ist einfach nicht verständlich z.B: "ah ok demfall" was ist den demfall für ein Wort?
Ohne das man erfährt, was bei den Variablen $StartMinute $StartHours $StartDay $StartMonat gesetzt wird, kann Dir keiner die Frage beantworten. Es kann ja z.B. sein das im Monat ne 5 steht .... dann mußte nur ein wenig geduldig sein - schon gehts
Auch ist ein eventuelles /etc/init.d/crond reload vielleicht nicht wirklich falsch!
Gruß
Hi,
also langsam ....*arrg*
Liest Du eigentlich die Antworten?
/etc/init.d/crond reload
Du mußt cron auch die Gelegenheit geben die Datei neu einzulesen! Ein kill -HUP <pid-von-crond> sollte es auch tun, aber dann mußt Du Dir erst noch die pid raussuchen.
Also nochmal für Dich zum mitdenken.
crontab mit cat etc. wie gewünscht gearbeiten!
DANACH /etc/init.d/crond reload
dann wird es auch klappen
Gruß over and out!
ps.: Du schaffst das ... wirklich ...!
also langsam ....*arrg*
Liest Du eigentlich die Antworten?
/etc/init.d/crond reload
Du mußt cron auch die Gelegenheit geben die Datei neu einzulesen! Ein kill -HUP <pid-von-crond> sollte es auch tun, aber dann mußt Du Dir erst noch die pid raussuchen.
Also nochmal für Dich zum mitdenken.
crontab mit cat etc. wie gewünscht gearbeiten!
DANACH /etc/init.d/crond reload
dann wird es auch klappen
Gruß over and out!
ps.: Du schaffst das ... wirklich ...!