Page 1 of 1

crontab-datei zu cronbase-datei konvertieren

Posted: 11. Apr 2013 7:24
by ups
Hallo,

ich suche eine elegante Lösung, um vorhandene crontab-Dateien (/var/spool/crontab/..) nach dem Format zu den unter /etd/cron.d/ verwendenten Format zu konvertieren.

Eigentlich kommt nur noch der User zwischen Zeitangabe und Befehl.
Der Header darf glaube ich, nicht verändert werden, sonst funktioniert crontab nicht?

Gruß
ups

meine lösung

Posted: 11. Apr 2013 8:58
by ups
Also meine Lösung, mehr oder weniger elegant.....

Aktive Zeilen ausschneiden:

Code: Select all

sed -e '/^#.*/d' crondatei > temp_neu-crondatei
Zeilenzahl ermitteln:

Code: Select all

ZZ=`cat temp_neu-crondatei`
Datei zerschneiden:

Code: Select all

cut -d" " -f1-5 temp_neu-crondatei > temp1_neu-crondatei
cut -d" " -f6-15 temp_neu-crondatei > temp2_neu-crondatei
Userdatei generieren:

Code: Select all

for &#40;&#40;i=1; i<=$ZZ; i++&#41;&#41;; do echo "root" >> temp_user; done
Datei zusammenführen:

Code: Select all

paste temp1_neu-crondatei temp_user temp2_neu-crondatei > neu-crondatei
Na, ja, es funktioniert...

Gruß
ups

kleine korrektur

Posted: 11. Apr 2013 9:14
by ups

Code: Select all

ZZ=`cat temp_neu-crondatei |wc -l`

nachtrag 2

Posted: 11. Apr 2013 17:48
by ups
Noch'n Nachtrag. Hat auf SLES funktinioniert, bei openSuse schein die Crontab-Datei anders zu arbeiten. E sind mehr Leerzeichen als Feldtrenner oder SLES arbeitet mit Tabs. Habe es nicht weiter untersucht, sondern einfah doppelte Leerzeichen entfernt:

Code: Select all

sed -e '/^#.*/d' crondatei > temp_neulz-crondatei
cat temp_neulz-crondatei | tr -s " " > cat temp_neu-crondatei
- have a ot of fun -