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

Shelldatei umschreiben zu batchdatei

Frage Entwicklung

Mitglied: Backspace

Backspace (Level 1) - Jetzt verbinden

28.10.2010 um 01:12 Uhr, 4178 Aufrufe, 6 Kommentare

Hallo,

ist es möglich ohne goßen Aufwand eine Shelldatei zu einer Batchdatei umzuschreiben ?

Es geht darum: muß für ein heterogenes Serversystem mit Windows und Linux, Programme erstellen (Vorgaben: .bat / .sh).

Will nicht alles immer doppelt aufwendig machen müssen, zudem ich mich als Azubi auch noch sehr schwer damit tue, mich da reinzudenken.

Hab mir auch schon die cmd-Befehlsliste angeschaut, um für die bereits von mir verwendeten Befehlen in den Shelldateien die gleichen oder zumindest ähnliche Befehle für die Batchdateien zu finden.
Der einzige Befehl für den ich einen aus der cmd-Liste zuordnen konnte, ist "getmac" anstelle von"ifconfig".

Hab im folgenden die Shelldatei reingestellt (liest den Laufwerksnamen, den freien Festplattenplatz und die Mac-Adresse eines Rechners aus) :
#!/bin/bash

declare -a DRIVES

MACADDRESS=`ifconfig | grep Hardware | awk '{print $6}'`

MYOUTPUT=`df -hT | grep -v Dateisystem | grep -v server_share | grep -v mapper | awk '{print $NF,$(NF-1)}'`

FREESPACE=`df -hT | grep -v Dateisystem | grep -v server_share | grep -v mapper | awk '{print $(NF-1)}'`

for element in $MYOUTPUT

do
echo ${MYOUTPUT}
done

P.S.: läuft auch soweit, gibt mir die Ergebnisse komischerweise jedoch 8-fach aus !?


Danke im Voraus

Gruß

Backspace
Mitglied: Marvin32
28.10.2010 um 07:50 Uhr
Dein Problem wird sein, das die meisten Befehle von Windows in einer Unix Umgebung nicht existieren, oder/und eine ganz andere Parameterliste haben.

z.b. Die erste Zeile in deinem Shellscript bräuchtest du unter windows nicht (und in windows gibt es auch kein "declare")

ich befürchte, du musst den ganzen kram jeweils für die Win-Umgebung neu schreiben.

Schau dir doch mal die MS-Powershell an, damit kommst du auf jeden Fall schonmal weiter, da die Cmd-lets dort gleich oder ähnlich heißen, wie die Befehle in Unix/Linux.

Gruß
Marvin
Bitte warten ..
Mitglied: danielfr
28.10.2010 um 08:01 Uhr
Oder Du schaust Dir mal Cygwin an. Das emuliert eine Unix Umgebung auf einem Windows Rechner...
Gruß Daniel
Bitte warten ..
Mitglied: maretz
28.10.2010 um 08:24 Uhr
was möchtest du denn am schluss haben?

Weil es ja noch mehr Optionen gibt... Dazu müsstest du dann nur richtig programmieren lernen -> schon baust du dir halt was selbst... Für das Auslesen von Hardware z.B. könnte ich mir Perl vorstellen (c++ natürlich auch aber ich vermute etwas schwerer...). Dann umgehst du das Problem mit dem OS - weil dein Compiler / Interpreter dafür sorgt das du die Befehle ausführen kannst... Nachteil: Bei Perl müsstest du auf allen Rechnern natürlich erstmal perl installiert haben...
Bitte warten ..
Mitglied: Backspace
28.10.2010 um 13:29 Uhr
Hallo,

sitze nun seit heute morgen mit rauchendem Kopf dran und komm irgendwie keinen Schritt weiter.

aus Shelldatei: MACADDRESS=`ifconfig | grep Hardware | awk '{print $6}'`

bei der Shelldatei konnte ich (siehe obige Zeile) die Position der gesuchten Information ausmachen, nämlich:
1. führe Befehl ifconfig aus
2 .suche nach dem Begriff Hardware
3. in der Zeile mit dem Begriff Hardware befindet sich die MACADRESSE an der 6.Stelle

Wie ist das als Batchdatei am besten zu machen (mit " findstr ", " mit for /f "tokens= ", ....) ?

Hab damit schon rumhantiert, es passierte entweder gar nichts, oder die txt Datei in der ich die ausgelesenen Daten reinimportiert habe (per ">"-Anweisung), hat sich nur geöffnet (mit den gesamten ausgelesenen Daten drin).

Kann mir bitte evtl. jemand nur für die MACADRESSE, die Befehlszeile hinschreiben ?

Gebe ich den Befehl getmac ein, so erscheint folgendes:

Physikal. Adresse Transportname
xx-xx-xx-xx-xx-xx Nicht zutreffend

Ich brauche praktisch das, wo die xx-xx-.......... stehn.


Danke

Backspace
Bitte warten ..
Mitglied: Friemler
28.10.2010 um 20:06 Uhr
Hallo Backspace,

schau Dir bei FOR /F die Optionen SKIP=, DELIMS= und TOKENS= an, das sollte zum Ziel führen.

Gruß
Friemler
Bitte warten ..
Mitglied: Biber
28.10.2010 um 21:39 Uhr
Moin Backplatz,

Friemler hat völlig recht - lies einmal den FOR/?-Hilfetext am CMD-Prompt.
Dann kannst du es nächstes Mal ohne rauchenden Kopf.


Zitat von Friemler:
schau Dir bei FOR /F die Optionen SKIP=, DELIMS= und TOKENS= an, das sollte zum Ziel führen.

In diesem konkreten Fall brauchst du allerdings nur eine der Optionen (Demo am CMD-Prompt):

>for /f "skip=3" %i in ('getmac') do @echo Mac-Adresse:%i 
Mac-Adresse:00-nn-mm-xx-yy-zz
Im Batch jeweils zwei Prozentzeichen (%%i statt %i) schreiben.
Speichern der MAC-Adresse in eine Variable: Statt "echo %i" den Befehl 'Set myMAC=%i" verwenden.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Script zum XML Datei Umschreiben
Frage von cberndtBatch & Shell12 Kommentare

Guten Tag. Ich habe folgendes Problem. Ich habe eine XML Datei mit meinen Gutscheincodes sowie weiter Daten aus meiner ...

Hosting & Housing
Umschreiben von IT Fachwörtern für einen Praktikumsbericht
gelöst Frage von Jonas441Hosting & Housing3 Kommentare

Liebe Community, ich habe ein dreiwöchiges Praktikum bei einer IT Firma gemacht nun muss ich einen Bericht darüber schreiben ...

Batch & Shell
Dateinamen umschreiben batch
gelöst Frage von jochengBatch & Shell5 Kommentare

Hi Leute ich trete mal wieder auf der Stelle. Es geht darum Bilddaten umzuschreiben. Ich bin auch fast am ...

Webentwicklung
Jeden Link umschreiben ASP.NET
gelöst Frage von Herbrich19Webentwicklung7 Kommentare

Hallo, Ich würde gerne auf meiner Homepage www.herbrich.biz jeden Link umschreiben, genauer gesagt möchte ich wen der Link auf ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 4 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 4 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 12 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server12 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...