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:
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 ((i=1; i<=$ZZ; i++)); 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 -