Cronjob mit script erstellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
truehl
Beiträge: 18
Registriert: 04.12.2010 12:29:36

Cronjob mit script erstellen

Beitrag von truehl » 18.03.2011 21:36:44

Hallo,
ich habe ein simples Problem, komme aber nicht drauf: Ich würde gerne einen Cronjob mittels eines Scipts hinzufürgen. Wenn ich crontag -e verwende, geht ja ein Editor (nano) auf und ich kann den Eintag machen. Das möchte ich aber nicht, sondern der Job soll automatisch per script eingetragen werden. Der Cronjob ist für den User Root, dieser ist auch angemeldet.

Jemand eine Idee?

Benutzeravatar
fsfFollower
Beiträge: 1
Registriert: 18.03.2011 21:01:54
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Utopia

Re: Cronjob mit script erstellen

Beitrag von fsfFollower » 18.03.2011 21:57:41

Ein Skript, welches so funktioniert könnte z.B. so aussehen:

Code: Alles auswählen

#!/bin/bash

echo $1 >> /etc/crontab
Gruss
fsfFollower
WS0: ASUS R.O.G. Maximus IV; 16GB DDR3 1333; Intel i7 2600k; nvidia gforce gainward 560ti gs; SSD 128GB; RAID0 2x512GB; ASUS BDD; DEBIAN SQUEEZE 64bit

gxyz
Beiträge: 202
Registriert: 26.07.2010 13:54:21
Lizenz eigener Beiträge: MIT Lizenz

Re: Cronjob mit script erstellen

Beitrag von gxyz » 19.03.2011 08:03:42

... statt direkt in /etc/crontab zu schreiben wäre es wohl leichter zu handhaben (v.a. wenn der Kram auch wieder scriptgesteuert entfernt soll) eine Datei in "/etc/cron.d" anzulegen

TripleAxe
Beiträge: 1
Registriert: 29.04.2011 18:35:53
Lizenz eigener Beiträge: MIT Lizenz

Re: Cronjob mit script erstellen

Beitrag von TripleAxe » 29.04.2011 18:41:01

hier das was du wolltest ohne blah blah

alles unten gilt nur für den entsprechend angemeldeten user

ALLE einträge in der cronjobliste löschen

Code: Alles auswählen

crontab -r
neuen eintrag unter den letzten erstellen

Code: Alles auswählen

cat <(crontab -l) <(echo "*/8 * * * * /root/ipliste.sh") | crontab -
( der führt alle 8 minuten "/root/ipliste.sh" aus )

Code: Alles auswählen

cat <(crontab -l) <(echo "*/1 * * * * chmod 777 /root/ipliste.sh") | crontab -
macht alle 1 minute ein chmog 777 aus "/root/ipliste.sh"

ist die liste der aktiven cronjobs

Code: Alles auswählen

crontab -l
hier als komplettes script

Code: Alles auswählen

#!/bin/sh
crontab -r                                                                             # siehe oben
cat <(crontab -l) <(echo "*/1 * * * * chmod 777 /root/ipliste.sh") | crontab -    # siehe oben
cat <(crontab -l) <(echo "*/8 * * * * /root/ipliste.sh") | crontab -                       # siehe oben
crontab -l >>cronjobs_aktiv.txt                      # gebe die liste der aktiven cronjobs in "cronjobs_aktiv.txt" aus

Antworten