Re: Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Jan Trippler
Am Donnerstag, 22. April 2004 12:23 schrieb Timo Eckert:
> On Thu, 22 Apr 2004 12:13:53 +0200
> "Tauber, Mathias  Mailing" <[EMAIL PROTECTED]> wrote:
>
> Hallo,
>
> > Super, danke!
>
> Kein Problem.
>
> > Geht statt dem
> >   if [[ `grep -c "$LOG" /filename_zum_aussschliessen` == 0
> > ]] auch das hier?
> >   if `grep -c "$LOG" /filename_zum_aussschliessen` == 0
>
> Nein,
>
> weil dier [ und ] im Scripting spezielle bedeutungen haben. Frag
> mich nicht genau welche, da müsste ich Dich auch die Manpage
> verweisen. ;)

[ ] sind im Prinzip das Gleiche wie test. Es ist also egal, ob Du 
if [ ... ]; then
oder
if test ...; then
schreibst.
Warum Du allerdings doppelte Klammern benutzt ist mir rätselhaft, 
die sind hier unnötig.

Im angegebenen Fall geht es allerdings auch ohne test, die 
if-Bedingung wertet ja das Ergebnis des nachfolgenden Kommandos aus 
(test liefert im Erfolgsfall 0, sonst != 0). Also kann man auch 
gleich das Ergebnis des Kommandos grep direkt benutzen:
if ! grep -q "$LOG" /filename_zum_aussschliessen; then
...
fi

Jan



Re: Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Tauber, Mathias Mailing
wenn du es schon hier hintippen kannst, warum probierst du es dann nicht
auch einfach mal? Dadurch lernt man am besten. Und natürlich durch lesen
der Dokumentation.
Prinzipiell stimme ich Dir da auf jeden Fall zu...

Aber ich habe auch schon die Erfahrung gemacht, dass ich beim Testen das
gewünschte Ergebnis bekommen habe, später aber hat sich das Gegenteil
herausgestellt. Es ist zwar unwahrscheinlich, dass das hier passiert wäre,
aber warum soll ich das Rad zum zweiten mal erfinden...
Mit einem 'Ja' bzw. 'Nein' hat sich meine Frage geklärt und mein Verständnis
wurde (ohne große Zeitinvestition von einem anderen oder mir) bereichert.
Sonnige Grüße
Mathias
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Timo Eckert
On Thu, 22 Apr 2004 12:13:53 +0200
"Tauber, Mathias  Mailing" <[EMAIL PROTECTED]> wrote:

Hallo,

> Super, danke!
Kein Problem.


> Geht statt dem
>   if [[ `grep -c "$LOG" /filename_zum_aussschliessen` == 0 ]]
> auch das hier?
>   if `grep -c "$LOG" /filename_zum_aussschliessen` == 0

Nein,

weil dier [ und ] im Scripting spezielle bedeutungen haben. Frag mich nicht genau 
welche,
da müsste ich Dich auch die Manpage verweisen. ;)

Sonnige Grüsse,
Timo.



Re: Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Sascha Hüdepohl
* Tauber, Mathias  Mailing ([EMAIL PROTECTED]) wrote:
> Geht statt dem
> 
>  if [[ `grep -c "$LOG" /filename_zum_aussschliessen` == 0 ]]
> 
> auch das hier?
> 
>  if `grep -c "$LOG" /filename_zum_aussschliessen` == 0

wenn du es schon hier hintippen kannst, warum probierst du es dann nicht
auch einfach mal? Dadurch lernt man am besten. Und natürlich durch lesen
der Dokumentation.

gruss
sascha



Re: Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Tauber, Mathias Mailing
ich würde das folgendermassen abändern:

cd /var/log
for LOG in `syslogd-listfiles --weekly`
do
if [[ `grep -c "$LOG" /filename_zum_aussschliessen` == 0 ]]
then
  if [ -s $LOG ]; then
 savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
  fi
fi
done
Super, danke!

Geht statt dem

 if [[ `grep -c "$LOG" /filename_zum_aussschliessen` == 0 ]]

auch das hier?

 if `grep -c "$LOG" /filename_zum_aussschliessen` == 0

Ebenfalls sonnige Grüße ;O)
Mathias
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Sascha Hüdepohl
* Tauber, Mathias  Mailing ([EMAIL PROTECTED]) wrote:
> < snip >
> cd /var/log
> for LOG in `syslogd-listfiles --weekly`
> do
>if [ -s $LOG ]; then
>   savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
>fi
> done
> < snip >
> 
> Ich will jetzt gezielt Dateien in der Schleife ausschließen

im Prinzip, um bei "test" zu bleiben und nicht die von Timo
vorgeschlagene, vieleicht elegantere Methode zu wählen, geht das so:

if [ -s $LOG -a ! "$LOG" = "excludefile01" \
 -a ! "$LOG" = "excludefile02"]; then
 ...
fi

man test

gruss
sascha



Re: Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Timo Eckert
On Thu, 22 Apr 2004 11:11:11 +0200
"Tauber, Mathias  Mailing" <[EMAIL PROTECTED]> wrote:

> Hi,

Hallo,

ich würde das folgendermassen abändern:

cd /var/log
for LOG in `syslogd-listfiles --weekly`
do
if [[ `grep -c "$LOG" /filename_zum_aussschliessen` == 0 ]]
then
  if [ -s $LOG ]; then
 savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
  fi
fi
done


und in /filename_zum_ausschliessen schreibst du zeilenweise die filenamen rein, welche 
savelog nicht bearbeiten soll.
am besten mit pfad. nicht dass es da probleme gibt.

Sonnige Grüsse,
Timo.



Brauche Tip bei Shell-Script

2004-04-22 Diskussionsfäden Tauber, Mathias Mailing
Hi,

folgendes ist in der /etc/cron.weekly/sysklogd enthalten:

< snip >
cd /var/log
for LOG in `syslogd-listfiles --weekly`
do
   if [ -s $LOG ]; then
  savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
   fi
done
< snip >
Ich will jetzt gezielt Dateien in der Schleife ausschließen
und weiss leider nicht genau, wie man das am besten realisiert.
Ich dachte an sowas:

   if [ -s $LOG ]; and \
   $LOG != 'file01_nicht' and \
   $LOG != 'file02_nicht' and \
   ... then
  savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
   fi
Tut das so, oder kann mir jemand eine elegantere/funktionierende
Version zeigen?
Danke und Grüße
Mathias
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)