Powered by Invision Power Board


Seiten:12 ( Zum ersten neuen Beitrag ) Reply to this topicStart new topicStart Poll

> telnet und scripte ?
Tekbaron
Geschrieben am: Sonntag, 23.September 2001, 15:58 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Da ich ja ne faule Socke bin jetzt mal noch eins drauf, wenn Linux runterfährt warum muss ich dann noch Windows runterfahren. Eigendlich sollte mit dem Button beide runterfahren, und so wirds gemacht:

In die Batch c:\windows\autohalt.bat eintragen:

Code Sample:
@echo off
rem >\\bmb\jmeier\remoteshutdown
RUNDLL32.EXE SHELL32.DLL,SHExitWindowsEx 1

Und schon fahren beide maschinen automatisch runter :D


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Tekbaron
Geschrieben am: Freitag, 21.September 2001, 13:53 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Also Damit man es versteht, alles was in Code steht muss auch so abgetippt werden, alles klar ? :p

Also Problem mit Kopieren, da Linux und Windows Text Dateien jeweils anders interpretieren, kann es da probleme geben.
Und zwar fügt Windows ein CRLF hinter jede Zeile ein, und das mag Linux garnet. Und genau das ist das Problem, wenn man die Datei koppiert sieht Sie vieleicht vollkommen in Ordnung aus iss aber für Linux doch vollkommen unbrauchbar.

Martin war CRLF richtig oder doch nur CR ?????


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Martin
Geschrieben am: Freitag, 21.September 2001, 16:42 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi !

Oh, schön, Text in spitzen Klammern entfällt komplett ! Nett ! :angry:

Die erste Zeile lautet:

#include {spitze Klammer auf} stdio.h {spitze Klammer zu}


Hmmmmpffffff !


--------------------
Bis dann Martin
PM
Top
Martin
  Geschrieben am: Montag, 24.September 2001, 11:08 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hi Leute !


Wegen des Löschens der CR-Zeichen habe ich noch etwas gefunden: Meine SuSE-Distribution liefert das Programm "duconv".


--------------------
Bis dann Martin
PM
Top
Tekbaron
Geschrieben am: Donnerstag, 20.September 2001, 10:00 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Also ums so einfach wie möglich zu machen hier die genaue Anleitung.

Unter root auf dem Linux Rechner z.b. im Verzeichnis /root die Datei autohalt anlegen inhalt :

Code Sample:
#! /bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin

# diese Datei wird von Windows erzeugt:
ausloeser=/home/ice/remoteshutdown

if [ -f $ausloeser ]; then
rm -f $ausloeser
logger -p syslog.notice -- "Automatic Shutdown"
shutdown -h now
fi


mit chmod 700 /root/autohalt
Die Datei ausführbar machen

mit crontab -e in die Crontab dieses einfügen:

Code Sample:
* * * * * test -e /home/ice/remoteshutdown || /root/autohalt


Auf dem Windows Rechner eine Batch Datei anlegen mit dem Inhalt:

Code Sample:
rem >\\linux\ice\remoteshutdown


Und diese mit einer verkünpfung auf dem Desktop aufrufen.

Diese Anleitung ist nicht für Frank sonder für die die sich noch garnet mit Linux auskennen :D Ausserdem wollte ich mal Testen ob das mit dem Code jetzt geht :)


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Martin
Geschrieben am: Freitag, 21.September 2001, 16:35 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hallo Leute !


Genau !

Windows: CR und LF (ASCII-Codes 13 und 10)
Unix/Linux: nur LF

Und wenn man nun per Maus-Copy-and-Paste das Programm von einem Fenster (z.B. Browser) unter Windows kopiert und dann in einem Linux-Fenster einfügt, kommen eben die CR-Zeichen in die Linux-Kiste. Diese Zeichen sind unter Linux eben keine Format-Steuercodes sondern werden als normaler Text gewertet. Und dann is Essig !

Falls das Problem öfter auftritt (Datei Windows->Linux kopieren), hier ein kleines Hilfsprogramm:

************* Dateianfang ****************

#include

main() {
int   c;
while (!feof(stdin))
if ((c = getchar()) != 13)
putchar©;
}

************* Dateiende ******************

Datei speichern als "removeCR.c". Dann übersetzen mit

  gcc  -o  removeCR  removeCR.c

Dann hat man ein lauffähiges Programm, welches auf Standardeingabe liest und jedes Zeichen AUSSER CR (ASCII-Code 13) auf Standardausgabe wieder ausgibt.

Ist also "WinCopy" eine per Maus von Windows nach Linux kopierte Datei, so hilft:

removeCR < WinCopy > Wincopy_ohne_CR

Zur Syntax: Das Zeichen  <  sorgt dafür, daß der Inhalt der Datei WinCopy in die Standardeingabe des Programms gefüttert wird. Entsprechend  leitet  >  die Standardausgabe in die Datei WinCopy_ohne_CR. Dabei wird eine bereits bestehende Datei dieses Namens überschrieben. Will man anhängen, so muß man anstelle  >  dann  >>  benutzen. Diese Operatoren führen die sog. Kanalumleitung aus (engl. "redirection" s. man-page der bash).

Wichtig für obiges Kommando (und auch allgemein): Nicht die gleiche Datei für Standardein- und -ausgabe verwenden.

Sicher könnte man den Kram auch mit irgendeinem Editor machen. Da könnt Ihr selbst etwas die Anleitungen lesen. :p


--------------------
Bis dann Martin
PM
Top
Frank
  Geschrieben am: Dienstag, 18.September 2001, 17:27 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Hi Jungs - erst einmal heißen Dank für die Erklärungen zum 'Autostart' unter Windows! Werde ich, sobald ich mal Zeit dazu habe ;) probieren.

Nun aber zum Thema: Ich schalte meinen Linux-Rechner meistens via Telnet d.h. vom Windoof Rechner aus aus. (Tolle Formulierung ?!?) Gibt es da eine Möglichkeit, den ganzen Vorgang mit einloggen, su - befehl + Admin-Passwort und schließlich runterfahren von Linux in ein Script zu packen, dass ich mit einem Klick ausführen könnte ?

Bzw. gibt es eine Möglichkeit, den Linux-Rechner mit einer batch-datei herunterzufahren, ohne dass ich vorher Admin-Rechte erlange bzw. mich als Root anmelde ?

Fragen über Fragen ... :)


--------------------
user posted image
PMEmail PosterUsers Website
Top
Martin
Geschrieben am: Freitag, 21.September 2001, 13:38 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hallo Leute !


Also in der CRON-Tab frage ich mit
    test -x /root/autohalt
ab, ob diese Datei existiert und ausführbar ist. Falls ja, dann wird der nächste Ausdruck auch noch ausgewertet, da die Logisch-UND-Konstruktion (mit &&) dann noch wahr werden kann. Dabei wird dann das Programm /root/autohalt ausgeführt.

In dem Programm /root/autohalt wird die Auslösedatei definiert. Dann wird nachgeschaut, ob sie existiert:
     if [ -f $ausloeser ]; then ...
Falls ja, so wird sie gelöscht, der Eintrag ins Syslog gemacht und der Shutdown eingeleitet.

D.h. die Existenz der Auslöserdatei wird IM SKRIPT geprüft, die Existenz und Ausführbarkeit des Skriptes IN DER CRONTAB.

Frank, zu Deinem Anzeigeproblem der letzten Message:
Gib mal ein (direkt am Prompt):
ls /home/ice/.bashrc
Gibt es eine Ausgabe ? Falls ja, dann muß folgendes (auch direkt am Prompt) auch eine Ausgabe produzieren:
test -e /home/ice/.bashrc  &&  echo "JA"
und zwar den String JA. Sonst ist wirklich was merkwürdig mit Deinem Rechner ;)

Vielleicht fehlen ja auch ein paar Leerzeichen im Programm. Ich tippe das Programm hier nochmal und ersetze alle Leerzeichen durch _ (alle diese Leerzeichen sind Pflicht !)


************** Dateianfang ***************

#!_/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin

# diese Datei wird von Windows erzeugt:
                       ausloeser=/var/tmp/remoteshutdown-toggle

if_[_-f_$ausloeser_];_then
rm_-f_$ausloeser
logger_-p_syslog.notice_--_"Remote Shutdown invoked"
shutdown_-h_now
fi

***************** Dateiende *********************

Habt Ihr das Programm per Maus zwischen Windows und Linux kopiert ??? Dann habt Ihr Euch Steuerzeichen eingefangen, die alles durcheinanderbringen (wie bei dem Mailfilter neulich, Jörg). Also: Programm ABTIPPEN !



--------------------
Bis dann Martin
PM
Top
Tekbaron
Geschrieben am: Freitag, 21.September 2001, 17:35 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Hallo Martin bevor du dich Schwarz ärgerst, genau für so einen Fall gibt es den Button Code, 1 mal drücken code beginnt code eingeben nochmal drücken code ende, dann sieht das genau so aus wie meine postings und der Programm code wird richtig dargestellt !!!!
Beispiel:

Code Sample:
:) {} :D :angry:
Und lies mal bitte den Thread Mülleimer !!!!


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Tekbaron
Geschrieben am: Mittwoch, 19.September 2001, 09:44 Uhr


Leader
********

Gruppe: [-bmb-]Admin
Beiträge: 2385
Mitgliedsnummer.: 12
Mitglied seit: 2001-03-07




Hey,

Also da müssen wir jetzt mal Teamarbeit machen :)

Die möglichkeit die mir vorschwebt ist:

Windows Rechner erzeugt eine Datei auffen Linux Rechner, per cron schaut linux nach ob die Datei da ist wenn ja löschen und shutdown -h now ausführen, wenn nicht programm ohne aktion beenden.

Hallo Martin wie muss das perl script dazu aussehen ?

Datei erzeugen unter win iss ganz einfach, nur einen link auf desktop machen in dem steht:

rem >\\linuxrechner\freigabe\datei


--------------------
mfg Tekbaron Leader [-bmb-] Clan

user posted image

user posted image

user posted image
PMUsers WebsiteICQ
Top
Frank
Geschrieben am: Freitag, 21.September 2001, 13:48 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Ah so !! Wenn ich am Prompt test -e ... eingebe muss ich nach echo den Text´eingeben, den er mir auswerfen soll ?

Naja, dann ist es ja kein Wunder, dass er bei mri nix angezeigt hat ;) Ich hatte den Post von Jörg so gedeutet, das der Text nach dem echo die Ausgabe ist, die er mir anschließend anzeigt.

So ein 'Fernunterricht' ist halt echt schwierig für Lehrer und Schüler :D

Jetzt klappt es ja endlich. Vielen Dank an Euch zwei für die Mühe und Geduld!! ;)

Aber warum soll ich das alles immer abtippen, MArtin ? Man kann den Text ja aus dem Forum in eine Datei kopieren, die man mit dem Windoof Notepad auf dem Linux-Rechner erzeugt.
Dann halt noch die Zugriffsrechte passend machen und fertig ist die Kiste !
Nur dumm, wenn man dann anfängt den Text nachträglich zu verändern, wenn man keine Ahnung hat ... :0
Asche auf mein Haupt !
;)


--------------------
user posted image
PMEmail PosterUsers Website
Top
Martin
Geschrieben am: Mittwoch, 19.September 2001, 17:42 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hallo Jörg und Frank !


Nachdem ich durch Jörgs Mailfilter wieder Training für Shell-Programmierung erhalten habe :-), würde ich das wie folgt machen:

***************** Dateianfang *********************
#! /bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin

# diese Datei wird von Windows erzeugt:
ausloeser=/var/tmp/remoteshutdown-toggle

if [ -f $ausloeser ]; then
rm -f $ausloeser
logger -p syslog.notice -- "Automatic Shutdown"
shutdown -h now
fi
******************* Dateiende **********************

Diese Datei könnte man z.B. speichern als (nur als root):
       /usr/sbin/remoteshutdown

Dann (weiter als root)
chmod 700 /usr/sbin/remoteshutdown
Falls die Datei nicht als root erzeugt wurde, dann:
chown root:root /usr/sbin/remoteshutdown


Jetzt in die CRON-Tabelle eintragen. Dazu (immer noch als root) mit dem Lieblingseditor folgende Datei laden:
/etc/crontab

Darin folgende Zeile anfügen:

* * * * * root test -e /usr/sbin/remoteshutdown || /usr/sbin/remoteshutdown

Jetzt testet CRON zu Beginn jeder Minute, ob besagte Datei vorliegt. Soll dieser Test nur alle x Minuten stattfinden (nur x <= 30 sinnvoll), dann das erste "*" in der neuen Zeile ersetzen durch "*/x" mit entsprechender Zahl für x.


Happy Shutdowning ... :-)


        Martin


--------------------
Bis dann Martin
PM
Top
Martin
Geschrieben am: Freitag, 21.September 2001, 16:40 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hallo Leute !


Ach, dieses Ikon-board kennt aber viele Sonderzeichen ! So wird aus ( c ) doch glatt © :0  Also: in meinem kleinen Programm der letzten Message heißt es natürlich

putchar ( c );

und nicht

putchar©;


Hmpf !



--------------------
Bis dann Martin
PM
Top
Frank
  Geschrieben am: Freitag, 21.September 2001, 12:56 Uhr


Rampage
******

Gruppe: [-bmb-]Rootserver
Beiträge: 695
Mitgliedsnummer.: 2
Mitglied seit: 2001-03-07




Na da habe ich Euch wohl eine echte Kopfnuss vorgeleget ...

Leider funzt es bei mir nicht. Auch wenn ich test -e /home/ice/.bashrc && echo eingebe, erhalte ich keine Rückmeldung ??

Wenn Crontab remoteshutdown findet, meldet er nur
/bin/sh: /root/autohalt: bad interpreter: No such file or directory

Ich kann allerdings auch die Datei autohalt nicht manuell ausführen, dabei erhalte ich ebenfalls die bad interpreter Fehlermeldung. Was ist denn hier falsch bei mir ??


--------------------
user posted image
PMEmail PosterUsers Website
Top
Martin
Geschrieben am: Freitag, 21.September 2001, 08:23 Uhr


KillingSpree
****

Gruppe: [-bmb-]Points
Beiträge: 130
Mitgliedsnummer.: 5
Mitglied seit: 2001-06-19




Hallo Jörg !


Mir fiel noch etwas auf. Das Ganze dürfte so noch nicht funktionieren, weil ich einen falschen Logik-Operator benutzt habe. (Man sollte nicht so einfach etwas aus einer anderen Distribution übernehmen :-|;) Außerdem will ich noch etwas verbessern (Abfragekriterium) und in Deinem Code-Sample fehlte die Nutzer-ID, mit der der CRON-Job ausgeführt werden soll (root).

Der Eintrag in der CRON-Tabelle sollte lauten:

  * * * * * root test -x /root/autohalt  &&  /root/autohalt

So sollte es klappen.



--------------------
Bis dann Martin
PM
Top

Topic OptionsSeiten:12 Reply to this topicStart new topicStart Poll