Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

For Schleife in Shelldatei

Frage Entwicklung Batch & Shell

Mitglied: Backspace

Backspace (Level 1) - Jetzt verbinden

02.12.2010, aktualisiert 12:17 Uhr, 2169 Aufrufe, 5 Kommentare

Hallo,

Hallo zusammen,

ich hatte eine Shelldatei geschrieben, welche mir die Laufwerke und den entsprechenden freien Speicher ausliest.

Nun soll ich diese Shelldatei in ihrem Umfang verkleinern (über for-schleife).

Mein kläglicher Versuch dazu:

01.
#!/bin/sh 
02.
 
03.
AnzahlLaufwerke=`df -hT | grep "%" | grep -v cifs | grep -v Typ | wc -l` 
04.
 
05.
#obere Zeile: Filterung nach bestimmten Laufwerken 
06.
 
07.
 
08.
$AnzahlLaufwerke=AnzahlLaufwerke; 
09.
 
10.
  for ((i=1; i=$AnzahlLaufwerke; i++)); 
11.
 
12.
  do echo 
13.
14.
 
15.
  "Laufwerk=`df -hT | grep -v Dateisystem | grep -v server_share | grep -v mapper | awk '{print $NF}' | sed -n 'p'`"; 
16.
 
17.
  "FreierSpeicher=`df -hT | grep -v Dateisystem | grep -v server_share | grep -v mapper | awk '{print $(NF-1)}' | sed -n 'p'`"; 
18.
 
19.
  }; 
20.
 
21.
  done
==> Die Sachen werden zwar ausgelesen, jedoch:
1. in einer Endlosschleife
2. es sollten nur drei Laufwerke angezeigt werden (siehe Befehlszeile "AnzahlLaufwerke > Filterung), es werden aber alle 4 angezeigt (inklusive dem cifs).


Die alte Shelldatei hatte ich so geschrieben, dass die Zeilen für Laufwerk und FreierSpeicher insgesamt 3 mal vorkamen, also die Prozedur 3 mal abgefragt wurde, unzwar für jede ausgelesene Zeile in der sich ein Laufwerk befand (siehe Befehl: sed -n 'p', für das 'p' stand jeweils einmal '1p', '2p', '3p').


Das For-Tutorial hier im Forum habe ich auch gelesen, bevor jemand fragt.

Danke

Gruß

Backspace
Mitglied: cry
02.12.2010 um 14:28 Uhr
Zitat von Backspace:
01.
>   for ((i=1; i=$AnzahlLaufwerke; i++)); 
02.
> 

Ohne jetzt groß drüber nachgedacht zu haben, stimmt hier mit Deiner Abbruchbedingung was nicht.
Proboer das man so:

01.
AnzahlLaufwerke=3 
02.
for ((i=1; i<=$AnzahlLaufwerke; i++));do echo $i; done
bye cry
Bitte warten ..
Mitglied: Backspace
02.12.2010 um 15:41 Uhr
Hallo,

Danke ersteinmal.

Das Problem mit der Endlosschleife ist weg.


Ein großes Problem ist weiterhin:

wie kann ich die Zeilen 15 und 17 (aus meinem Code) richtig in die For-Schleife packen ?


Danke

Gruß

Backspace
Bitte warten ..
Mitglied: cry
02.12.2010 um 16:53 Uhr
Kann es sein, dass Du etwas in der Art haben möchtest:

01.
df -hTP | awk '{print $7 "\t" $6}'
Und wenn nicht, dann Mach mal ein Beispiel, wie die Ausgabe aussehen soll.

bye cry
Bitte warten ..
Mitglied: Backspace
04.12.2010 um 20:39 Uhr
Hallo,

Danke erstmal an cry, der Ansatz hat mir weitergeholfen.

Bin jetzt so weit mit der Shelldatei gekommen, leider noch nicht ganz vollständig:

01.
for i in `df -hTP | grep "%" | grep -v cifs | grep -v Typ | wc -l` 
02.
 
03.
do 
04.
 
05.
        #ausgeben von DRIVE: 
06.
        echo `df -hTP | awk '{print $7}'` 
07.
 
08.
done 
09.
 
10.
for i in `df -hTP | grep "%" | grep -v cifs | grep -v Typ | wc -l` 
11.
 
12.
do 
13.
 
14.
        #ausgeben von FREESPACE: 
15.
        echo `df -hTP | awk '{print $6}'` 
16.
done 
17.
 
18.
        for i in `ifconfig | grep Hardware | awk '{print $6}' | sed -e 's/\n//g'` 
19.
 
20.
        do 
21.
 
22.
        #ausgeben von MACADDRESS: 
23.
        echo `ifconfig | grep Hardware | awk '{print $6}' | sed -e 's/\n//g'` 
24.
 
25.
done 
26.
 
27.
#       for i in `date '+%d.%m.%Y %X'` 
28.
 
29.
#       do 
30.
 
31.
        #ausgeben von DATETIMES: 
32.
        echo `date '+%d.%m.%Y %X'` 
33.
 
34.
 
35.
 
36.
       for i in ...........????????????? 
37.
 
38.
       do 
39.
 
40.
       wget -O - "http://17x.xx.x.xxx/Ordner/Programm.php?MACADDRESS=${?????}&DRIVE=${?????}&FREESPACE=${?????}&DATETIMES=${?????}&save_data=true

Mein Problem:

1. wie müssten die ausgelesenen Werte definiert werden, um sie in wget einsetzen zu können und zu übertragen ?
(siehe Fragezeichen in Code)


Danke

Gruß

Backspace
Bitte warten ..
Mitglied: cry
07.12.2010 um 17:20 Uhr
01.
#!/bin/bash 
02.
 
03.
# einkommentieren, wenn Du sehen möchtest, was passiert 
04.
#set -x 
05.
 
06.
# MAC fuer eth0 auslesen 
07.
mac=${ifconfig eth0 | awk '/Hardware Adresse/{print $6}'} 
08.
 
09.
  
10.
df -hTP | egrep -v "cifs||Type|tmpfs" | while read line 
11.
do 
12.
  drive=${echo $line | awk '{print $7}'} 
13.
 
14.
  # der Prozentwert bei df zeigt den verbrauchten Plattenplatz an nicht den freien 
15.
  # free in Prozent, aber ohne %-Zeichen, das ist in einer URL so nicht erlaubt 
16.
  free=$((100 - ${echo $line | awk '{gsub(/%/,"",$6);print $6}'})) 
17.
 
18.
  # die aktuelle Zeit wuerde ich auf dem Server 17x.xx.x.xxx in dem php-script auslesen 
19.
  wget -O - "http://17x.xx.x.xxx/Ordner/Programm.php?MACADDRESS=${mac}&DRIVE=${drive}&FREESPACE=${free}&save_data=true 
20.
done 
Ist das in etwa das, was Du machen wolltest?

bye cry
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Microsoft Office
Vereinfachen einer Schleife
Frage von Jens1975Microsoft Office1 Kommentar

Hallo, ich bin neu und versuche mich jetzt mit VBA Ich möchte die Funktion Autofill durch eine Schleife ersetzen. ...

Netzwerkprotokolle
STP und Schleifen
gelöst Frage von ottokarlNetzwerkprotokolle20 Kommentare

Hallo, ich habe eine allgemeine Frage. Situation: Ich nehme ein Kabel und stecke es im Switch z.B. in Port ...

Entwicklung
PowerShell - Schleifen
gelöst Frage von 119785Entwicklung8 Kommentare

Hallo Leute, ich habe hier eine Aufgabe und brauche mal einen kleinen Tip. Entweder habe ich eine Denkbloacke oder ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 4 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 11 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 22 StundenWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless16 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...