[linux-l] Probleme mit Cleanupscript
Steffen Dettmer
steffen at dett.de
Mi Jul 9 23:34:28 CEST 2003
* Dani Oderbolz wrote on Tue, Jul 08, 2003 at 15:24 +0200:
> # Verzeichnis Pattern Suchtiefe Zeit_in_Tagen Kommando ( \{\}
> bezeichnet die aktuelle Datei)
> /home/admin/log * 1 30 "/bin/mv \{\} /home/admin/log/old/ \;"
"logrotate" und Freunde kennst Du?
Das einfach zuviel gequotet war, hat Jens ja schon geschrieben.
Wenn es unbedingt im Konfigfile gequotet sein muß (wußte gar
nicht, das das geht), hilft bei $COMMAND vielleicht auch ein
`echo $COMMAND`.
Sowas kann man dann auch noch umgehen, wenn man sagt, man macht
ein Konfigverzeichnis. Je Eintrag eine Datei z.B. im Format:
dir="/home/admin/log"
pattern="/home/admin/log"
command="/bin/mv \{\} /home/admin/log/old/ \;"
Angenommen, sowas liegt als "admin.conf" im Verzeichnis
"configs". Dann kann man schreiben (ohne Fehlerbehandlung):
for file in configs/*.conf ; do
dir=""
pattern=""
command=""
source $file \
&& find "$dir" -iname "$pattern" -exec $command
done
oder sowas. Dann kann man auch mehrere mehrteilige Commandos
haben. Interessant war auch SuSE's Idee in rc.config:
NETCONFIG="_0 _1 _3"
NETDEV_0="eth0"
NETDEV_1="eth1"
NETDEV_3="ippp0"
IFCONFIG_0="192.168.x.a broadcast 192.168.x.255 netmask 255.255.255.0 up"
IFCONFIG_1="192.168.y.a broadcast 192.168.y.255 netmask 255.255.255.0 up"
IFCONFIG_3="192.168.z.zz pointopoint 192.168.c.d up"
und dann sourcen und sowas wie:
for I in $NETCONFIG; do
eval NETDEV=\$NETDEV$I
eval IFCONFIG=\$IFCONFIG$I
ifconfig $NETDEV $IFCONFIG
done
Hat ne gewisse Eleganz, find ich: einfach und flexibel.
oki,
Steffen
--
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.
Mehr Informationen über die Mailingliste linux-l