crontab-datei zu cronbase-datei konvertieren

Antworten
Nachricht
Autor
ups

crontab-datei zu cronbase-datei konvertieren

#1 Beitrag von ups » 11. Apr 2013 7:24

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 Beitrag von ups » 11. Apr 2013 8:58

Also meine Lösung, mehr oder weniger elegant.....

Aktive Zeilen ausschneiden:

Code: Alles auswählen

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

Code: Alles auswählen

ZZ=`cat temp_neu-crondatei`
Datei zerschneiden:

Code: Alles auswählen

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

Code: Alles auswählen

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

Code: Alles auswählen

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

Gruß
ups

ups

kleine korrektur

#3 Beitrag von ups » 11. Apr 2013 9:14

Code: Alles auswählen

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

ups

nachtrag 2

#4 Beitrag von ups » 11. Apr 2013 17:48

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: Alles auswählen

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

Antworten