Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich muss immer wieder von einem Windows Rechner aus per Telnet auf eine Linux Maschine um dort Verzeichnisse zu löschen. Es handelt sich dabei immer um die selbern Verzeichnisse, und es ist immer relativ viel Arbeit. Deshalb würde ich gerne eine Batch Datei auf dem Windows Rechner starten, wo automatisch eine Verbindung über Telnet hergestellt, und die Verzeichnisse gelöscht werden. Dazu ein paar Fragen:

1. Geht das überhaupt

2. Wie muss ich das schreiben wenn ich login und Passwort mitgeben will

3. Wie sieht das aus mit Variablen? Kann ich welche benutzen, und wenn ja wie?

Ich hoffe Ihr könnt mir weiterhelfen.

Bine

Geschrieben

Nur mal ganz daemlich gefragt:

Warum erstellst Du nicht auf der Linux-Maschine ein Shell-Skript, was den Loeschvorgang fuer Dich erledigt? Dann musst Du Dich zwar immer noch kurz per Telnet mit der Maschine verbinden, aber Du musst nicht Username und Passwort irgendwo hinterlegen und im Grundsatz willst Du Dir doch nur die Loescharbeiten angenehmer machen. Und genau das kannst Du ja von Linux-seite aus machen. :)

Geschrieben
Nur mal ganz daemlich gefragt:

Warum erstellst Du nicht auf der Linux-Maschine ein Shell-Skript, was den Loeschvorgang fuer Dich erledigt? Dann musst Du Dich zwar immer noch kurz per Telnet mit der Maschine verbinden, aber Du musst nicht Username und Passwort irgendwo hinterlegen und im Grundsatz willst Du Dir doch nur die Loescharbeiten angenehmer machen. Und genau das kannst Du ja von Linux-seite aus machen. :)

Also, das Problem liegt darin das ich in diesem Script immer was verändern müßte. Es handelt sich bei den Verzeichnissen die ich löschen muss um Backup-Verzeichnisse von eMail Konten. Und das sind immer unterschiedliche (deswegen die Frage nach der Variablen). Aber der Ablauf ist immer gleich. Wenn ich also einfach einer Variablen anstelle von xy ab zuweisen könnte, und das dann ablaufen lassen könnte, wäre das optimal. Ich habe aber von solchen Sachen noch so gut wie keine Ahnung. Batchdateien nur ein wenig, aber Shellscripte gar nicht.

Wie müßte das denn dann aufgebaut sein?

Bine

Geschrieben

Shellsrkipte sind im Prinzip auch nichts anderes als Batchdateien. Du schreibst die Befehle alle untereinander und läst es laufen.

Du kannst Shellskripte Paramter mitgeben.

$1 ist der erste Parameter, $9 ist der neunte Paramter.

Frank

Geschrieben
Shellsrkipte sind im Prinzip auch nichts anderes als Batchdateien. Du schreibst die Befehle alle untereinander und läst es laufen.

Du kannst Shellskripte Paramter mitgeben.

$1 ist der erste Parameter, $9 ist der neunte Paramter.

Frank

Sorry, aber das ist für jemanden der keine ahnung davon hat gar nicht hilfreich. Jetzt bin ich genau so schlau wie vorher. Sagen wir einfach mal ich habe eine variable a und weise der der Verzeichnisnamen xy zu und will dann dieses Verzeichnis löschen. Wie muss ich das schreiben, und wie kann ich das Script dann ausführen?

Bine

Geschrieben

Du schreibst ein Shellskript mit folgendem Inhalt.

#!/bin/sh

rmdir $1

Das Skript speicherst Du mit der Dateiendung sh. Also z. B. skript.sh.

Dann rufst Du das Skript wie folgt auf.

sh skript.sh /verzeichni1/email_backup

Das würde dann das Verzeichnis email_backup im Unterverzeichnis verzeichnis1 löschen.

Frank

Geschrieben
Du schreibst ein Shellskript mit folgendem Inhalt.

Das Skript speicherst Du mit der Dateiendung sh. Also z. B. skript.sh.

Dann rufst Du das Skript wie folgt auf.

sh skript.sh /verzeichni1/email_backup

Das würde dann das Verzeichnis email_backup im Unterverzeichnis verzeichnis1 löschen.

Frank

Nee, also der lange Parameter geht nicht. Es gibt ein Unterverzeichnis mit dem Namen den ich in der Variablen speichern will in über 50 Verzeichnissen.

Die Datei soll also in etwa so aussehen:

#!/bin/sh

$user

rm ???/???/???/???/$user

rm ???/AAA/???/???/$user

etc.! Und dann ruf ich das so auf:

sh skript.sh /testuser

Geht das?

Bine

Geschrieben
rmdir $1/abc

rmdir $1/def

geht natürlich.

Frank

Und wie muss ich das mit der Variablenübergabe machen? Also was muss ich schreiben damit er mir das was ich beim Aufrufen übergebe in die Variable übernimmt?!?!

Bine

Geschrieben
Nur mal ganz daemlich gefragt:

Warum erstellst Du nicht auf der Linux-Maschine ein Shell-Skript, was den Loeschvorgang fuer Dich erledigt? Dann musst Du Dich zwar immer noch kurz per Telnet mit der Maschine verbinden [...]

Man könnte das Skript natürlich auch als Cron-Job starten. Z.B. alle 24h. Die gewonnene Zeit kann man besser investieren, z.B. ein Ei essen oder Tauben angucken, oder so...

Geschrieben

Hier mal die Erklärung von $0-9

Also die Bash (also die Shell - Kommandozeileninterpreter) ermöglicht es über

$0-$9 (im Prinzip gehen auch mehr) Argumente unter anderem einem Skript zu übergeben.

Du kannst ja mal auf der Linuxgurke bissl rumtesten...

Schreib dir einfach mal ein kleines Shellskript das du z.B. 'para.sh' nennst,

dann mach es ausführbar mit

chmod 755 para.sh
Sodala...in das Skript schreibst du folgendes:
!# /bin/bash

echo $0

echo $1

echo $2

echo $3

echo $4

echo $5

echo $6

echo $7

echo $8

echo $9
und nun kannst du es ausführen (keine Angst du machst nix kaputt, ehrlich) und zwar so:
./para.sh
du wirst merken dass folgendes ausgegeben wird:
./para.sh









Warum ist das so fragst du dich sicher...ganz einfach $0 ist der Name des Skriptes...die anderen also $1-$9 enthalten keine Argumente...deshalb nur Leerzeilen. Nun kannst du folgendes probieren:
./para.sh a b c d e f g h i
Und du wirst merken, dass so dein Output aussieht:
./para.sh

a

b

c

d

e

f

g

h

i
So das war doch nicht so schwer oder? Nun kannst du natürlich auch diese übergebenen Werte also Argumente einer Variablen in deinem Skript zuweisen, etwa so:
!# /bin/bash


variable=$1

echo "Du hast mir '$variable' als Argument übergeben"
Nun kannst du dir denken, was passiert, wenn du dein Skript folgendermaßen aufrufst:
./para.sh blubb
Wenn du dein Skript nur so aufrufst:
./para.sh
ist die Variable namens 'variable' halt einfach leer und dein Skript wird folgendes ausgeben:
Du hast mir '' als Argument übergeben

Wenn du das verstanden hast, dann können wir einen Schritt weitergehen....

Geschrieben

So, nun hab auch ich das kapiert. Und es funktioniert. Und es spart mir eine Menge Zeit die ich nun wieder sinnvoll nutzen kann. Das ganze Als CronJob laufen zu lassen finde ich auch nicht schlecht - aber da muss ich erst mit meinem Abteilungsleiter drüber sprechen der momentan leider krank ist. Vorerst hilft mir das schon mal wirklich weiter. Ich danke Euch *knutsch*

Bine

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...