[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