"printf" ausgabe hinten anhängen

faber38

faber38

Tripel-As
hallo,
ich hänge bei meinem script immer an der gleichen Stelle...

Code:
ipPrefix="192.168.38";            # erster Teil der IP-Adresse
ipsToCheck="4";                   # letztr Teil der IP-Adresse (können mehrere $
var1="true";                      # Var1 für die IF-Abfrage
Datum=`/bin/date +%Y-%m-%d-%H:%M` # Datum setzen
yes_ping="updates erfolgreich"
no_ping="Rechner war nicht eingeschaltet"

for ipToCheck in $ipsToCheck; do
    if ping -q -c1 ${ipPrefix}.${ipToCheck} > /dev/null 2>&1; then
        var1="false";
        printf "$Datum -        $yes_ping\n" > d ;
    fi;
done;

if [ "$var1" = "true" ]; then
        printf "$Datum\n$no_ping\n" > d ;
fi;

nun möchte ich aber das die Datei "d" nicht immer neu geschrieben wird.. sondern die ereignisse sich hinten/unten in der Datei anhängen..
 
habs...

Code:
ipPrefix="192.168.38";            # erster Teil der IP-Adresse
ipsToCheck="4";                   # letztr Teil der IP-Adresse (können mehrere $
var1="true";                      # Var1 für die IF-Abfrage
Datum=`/bin/date +%Y-%m-%d-%H:%M` # Datum setzen
yes_ping="updates erfolgreich"
no_ping="Rechner war nicht eingeschaltet"

for ipToCheck in $ipsToCheck; do
    if ping -q -c1 ${ipPrefix}.${ipToCheck} > /dev/null 2>&1; then
        var1="false";
        printf "$Datum -        $yes_ping\n" > d ;
        cat d >> e
    fi;
done;

if [ "$var1" = "true" ]; then
        # export DISPLAY=:0.0
        printf "$Datum\n$no_ping\n" > d ;
fi;

mit cat gehts...
 
oh.. danke.. da kann ich mir einige zeilen sparen !
 
kann ich die größe der Datei noch eingrenzen ?
 
Mahlzeit,

falls du meinst, das das Skript nur n Einträge in die Datei schreibt, dann kannst du das selbstverständlich Skripttechnisch abfangen.
So in der Art:
Code:
[ `wc -l d` -ge 1000 ] && mv d d.old

Oder du könntest die Dateien von logrotate rotieren lassen. Kriterien hier für sind, Größe, Alter oder Datum.

mfg
HeadCrash
 
eine gute idee das über logrotate machen zu lassen...

werde mal in /etc/logrotate.d mich ein wenig einarbeiten...
 
ich habe nun unter /etc/logrotate.d folgende datei abgespeichert .. "message_update"

mit folgendem inhalt
Code:
/var/log/message_update {
    notifempty
    missingok
    noolddir
    weekly
    rotate 4    
}

gebe ich logrotate -f /etc/logrotate.d/message_update ein wird diese nun auch rotiert.

muss ich nun noch einen crontab erstellen oder werden alle dateien in /etc/logrotate.d automatisch abgearbeitet ?
 
die frage hat sich erledigt... steht doch alles in der /etc/logrotate.conf
es reicht in /etc/logrotate.d eine Datei anzu legen...
 

Ähnliche Themen

NAS-Drive Mount in Bash-Script über crontab

Queue für copy Script

mittels if abfrage datei nach variabelnwert durchsuchen

Shellskript - Fehler in Cron

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Zurück
Oben