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
crontab-datei zu cronbase-datei konvertieren
meine lösung
Also meine Lösung, mehr oder weniger elegant.....
Aktive Zeilen ausschneiden:
Zeilenzahl ermitteln:
Datei zerschneiden:
Userdatei generieren:
Datei zusammenführen:
Na, ja, es funktioniert...
Gruß
ups
Aktive Zeilen ausschneiden:
Code: Alles auswählen
sed -e '/^#.*/d' crondatei > temp_neu-crondatei
Code: Alles auswählen
ZZ=`cat temp_neu-crondatei`
Code: Alles auswählen
cut -d" " -f1-5 temp_neu-crondatei > temp1_neu-crondatei
cut -d" " -f6-15 temp_neu-crondatei > temp2_neu-crondatei
Code: Alles auswählen
for ((i=1; i<=$ZZ; i++)); do echo "root" >> temp_user; done
Code: Alles auswählen
paste temp1_neu-crondatei temp_user temp2_neu-crondatei > neu-crondatei
Gruß
ups
nachtrag 2
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:
- have a ot of fun -
Code: Alles auswählen
sed -e '/^#.*/d' crondatei > temp_neulz-crondatei
cat temp_neulz-crondatei | tr -s " " > cat temp_neu-crondatei