crontab-datei zu cronbase-datei konvertieren

Post Reply
Message
Author
ups

crontab-datei zu cronbase-datei konvertieren

#1 Post 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

ups

meine lösung

#2 Post 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

ups

kleine korrektur

#3 Post by ups »

Code: Select all

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

ups

nachtrag 2

#4 Post 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 -

Post Reply