Vergessen?
Vergessen?
Administrator Startseite

Apple

iOS, iTunes, Mac OS X

Entwicklung

Assembler, BASIC, Batch & Shell, Bibliotheken & Toolkits, C und C++, CSS, Datenbanken, HTML, IDE & Editoren, Installation, Java, JavaScript, KiXtart, Lizenzierung, Pascal & Delphi, Perl, PHP, Python, VB for Applications, Visual Studio, Webentwicklung, XML

Hardware

Benchmarks, @Server Cluster, CPU, RAM, Mainboards, Drucker und Scanner, Festplatten, Raid, Grafikkarten & Monitore, @Netzwerkkarten, Multimedia & Zubehör, Notebook & Zubehör, @Router und Routing, SAN, NAS, DAS, Server-Hardware, Sonstige Peripheriegeräte, Speicherkarten, Switche und Hubs

Internet

Blogs, CMS, Domain Registrierung, E-Books, E-Business, E-Mail, Flatrates, Hosting & Housing, Informationsdienste, Instant Messaging, Onlinedienste, SEO, Server, Soziale Netzwerke, Utilities, Webbrowser

Linux

Apache Server, Debian, Desktop, Netzwerk, OpenOffice, LibreOffice, RedHat, CentOS, Fedora, Samba, Suse, Tools & Utilities, Ubuntu, Userverwaltung

Microsoft

Exchange Server, @Hyper-V, Installationsprobleme, Netzwerk, Office, Outlook & Mail, Systemdateien, Tools & Utilities, Userverwaltung, @Visual Studio, Windows 7, Windows 8, Windows Phone, Windows Server, Windows Vista, Windows XP

Multimedia

Audio, Digitiales Fernsehen, Grafik, Icons, Schriftarten, Video

Netzwerke

Cluster, DNS, DSL, VDSL, Groupware, Grundlagen, ISDN & Analoganschlüsse, LAN, WAN, Wireless, Monitoring, Netzwerkmanagement, Netzwerkprotokolle, Router & Routing, TK-Netze & Geräte, UMTS, EDGE & GPRS, Voice over IP

Off Topic

Administrator.de Feedback, Humor (lol), Papierkorb

Sicherheit

Backup, Erkennung und -Abwehr, Firewall, Grundlagen, Informationsdienste, Rechtliche Fragen, Sicherheits-Tools, Tipps & Tricks, Verschlüsselung & Zertifikate, Viren und Trojaner

Sonstige Systeme

Google Android, MikroTik RouterOS, Novell Netware, Sun Solaris

Virtualisierung

Hyper-V, KVM, Vmware, Xenserver

Weiterbildung

Aus- und Weiterbildung, Ausland, Schulung & Training, Studentenjobs & Praktikum
Cover IT-Administrator
Für die Mai-Ausgabe hat sich das IT-Administrator Magazin den Schwerpunkt "Messaging & Collaboration" auf die Fahnen geschrieben. Lesen Sie darin, wie Sie die Open Source-Groupware Open-Xchange App Suite in Betrieb nehmen und administrieren. Außerdem zeigen wir Ihnen, wie Sie sich vor Viren und Spam mit Proxmox 3.1 schützen. Nicht zuletzt befassen wir uns mit der administrativen Sicherheit und Überwachung in Exchange Server 2013. In den ... mehr
Mitglied: racer1601
0
racer1601 am 25.03.2012, aktualisiert um 18:04 Uhr, 2913 Aufrufe

Ubuntu Zeilen Löschen aus .txt Datei

Hallo

ich habe hier noch ein Problem mit dem auslesen und löschen von Zeilen in einem Logfile

Zum Problem:

Die zeilen Anzahl des Logfiles BachupLog.txt (Der Schreibfehler ist richtig so) soll eingelesen werden und auf eine länge von 150 Zeilen gekürst werden wenn er länger ist als 150 Zeilen.
Die Shell geht bis zum punkt: zeilen_gesamt=$(sed -n '$=' $LOG) und wertet diese auch aus aber dann bricht das Programm ab. Habe schon eine weile rum probiert aber komme nicht auf den Fehler. Unter dem CODE hänge ich mal Bilder an.

Hier mal eine test shell:
01.
#!/bin/bash -x 
02.
# Sicherungsscript.sh 
03.
#*****************************************# 
04.
#***           BackupScript            ***# 
05.
#***            00.03.2012             ***# 
06.
#***       V.0.1Linux A. Schmidt       ***# 
07.
#*****************************************# 
08.
DATE=$(date +%Y.%m.%d) 
09.
TIME=$(date +%H:%M) 
10.
#Variable DATE und TIME erstellen 
11.
####################################################### 
12.
LOG=/home/administrator/BachupLog1.txt 
13.
zeilen_max=150 
14.
zeilen_gesamt=$(sed -n '$=' $LOG)


bis hier kommt die shell wenn ich es laufen lasse dann kommt fehler in Zeile 97 und er hat dann auch nichts getan.

01.
if [ $zeilen_gesamt -gt 150 ]; 
02.
    then 
03.
         echo "#################hinter if###############" >> $LOG 
04.
         let zeilen_loeschen=$zeilen_gesamt-$zeilen_max 
05.
         sed -i "1,${zeilen_loeschen}d" $LOG 
06.
         echo "#############Prüfung der Länge wurde durchgeführt############ >> $LOG 
07.
fi 
08.
#####################################################

Ich hoffe es kann mir jemand helfen!

Klicken Sie auf das Bild, um es zu vergrößern - 1847732db470e5d196cc74d3d698b757.jpg


Klicken Sie auf das Bild, um es zu vergrößern - d2ad641d02be37dd35a12849ef3c498c.jpg
4 Antworten
Mitglied: bastla
0
bastla am 25.03.2012 um 18:27 Uhr
Hallo racer1601!

Wäre nicht eher "head tail" das, was Du suchst?

Grüße
bastla
Bitte warten ..
Mitglied: hmarkus
0
hmarkus am 25.03.2012 um 19:52 Uhr
Hallo auch in diesem Thread zum ähnlichen Thema face-wink

Vielleicht ist sed ein bisschen zu kompliziert für solch einfachen Dinge.

Zeilenzahl der Datei
lines=`wc -l $LOG | cut -d " " -f 1` 
zu löschende Zeilen (Anzahl)
linestodelete=`expr $lines - 150`
und dann sollte Dein Code für sed eigentlich funktionieren
sed -i "1,$linestodelete d" $LOG


Markus
Bitte warten ..
Mitglied: Lochkartenstanzer
0
Lochkartenstanzer am 25.03.2012 um 20:51 Uhr
Ich würd' s so lösen:

tail -n $zeilen_max  $LOG >$tempfile 
mv $tempfile $LOG

lks
Bitte warten ..
Mitglied: racer1601
0
racer1601 am 28.03.2012 um 12:32 Uhr
Danke euch beiden geht jetzt alles!

Alex
Bitte warten ..
Mehr Neuester Wissensbeitrag
Administrator.de Feedback
Information: Hallo Administrator User, seit gestern Abend ist unser neues Release 4.3 online. Mit dem neuen Release kommt ein neues feststehendes Hauptmenü im Kopf der Seite. Das Menü scrollt ... von admtech, Thema: Administrator.de Feedback
Mehr Diese Inhalte könnten dich auch interessieren
Batch & Shell
Frage: Hallo, ich habe mir ein kleines Sicherungsscript gebastelt, und würde dieses gerne vereinfachen. Im Augenblick habe ich für jeden zu sichernden Rechner einen Abschnitt in der BAT. Schön ... von hoffi3d, Thema: Batch & Shell
PHP
Frage: Hi, Leute habe mehrere txt Dateien auf einem FTP Server und möchte diese Daten in eine mysql DB auf einem anderen Server eintragen. Die Dateien werden per Batch ... von dax4fun, Thema: PHP
Batch & Shell
Frage: Hallo zusammen, ich stehe gerade vor einem Problem und hätte eine Frage zur Umsetzung. Ich bin mit der Batch Programmierung nicht wirklich vertraut. Folgendes Problem: Ich erzeuge dynamisch ... von Chris1979, Thema: Batch & Shell
Batch & Shell
Frage: Hallo, ich erstelle zwei Dateien, eine jede Abend mit dem Inhalt online.txt HOST PC001 ist online HOST PC023 ist online usw Damit prüfe ich welcher PC Abends noch ... von angebissener-apfel, Thema: Batch & Shell
Java
Frage: Hallo Leute, bei einer bestehenden Webanwendung möchte ich auf der html Seite, das Änderungsdatum einen bestimmen Datei txt die auf der Server Festplatte liegt ausgeben. Anwendung läuft auf ... von horstvogel, Thema: Java
Heiß diskutierte Inhalte
Switche und Hubs
Frage: Hallo Leute ich habe ein Problem bei dem ich nicht so ganz weiter kommen. Ausgangs Situation: Wir haben eine neue Anbindung zu einem Externen Kunden bekommen. Die Anbindung ... von Shinak, Thema: Switche und Hubs
Windows 7
Frage: Hi Leute, ich habe hier einen neuen HP Pro 6300 unter Windows 7SP1. Wenn ich an diesen Rechner eine externe 3TB USB-Platte von WD anschließe, kommt Windows beim ... von diwaffm, Thema: Windows 7
Windows 8
Frage: Hallo Community, ich bin stolzer Besitzer eines Windows 8.1 und komme soweit auch gant gut klar mit der neuen Umgebung. Sinnbefreit - aber okay . Jetzt habe ich ... von HtHNightwolf, Thema: Windows 8
Batch & Shell
Frage: Hallo, ich habe mir ein kleines Sicherungsscript gebastelt, und würde dieses gerne vereinfachen. Im Augenblick habe ich für jeden zu sichernden Rechner einen Abschnitt in der BAT. Schön ... von hoffi3d, Thema: Batch & Shell
SAN, NAS, DAS
Frage: Hallo, ein Kunde möchte ein Synology NAS (ich vermute es wird eine DS214) in seinem Netzwerk für eine zentrale Datenablage. Dafür wird im ersten Schritt natürlich ein Netzlaufwerk ... von Axel90, Thema: SAN, NAS, DAS