Linux 15.027 Themen, 107.036 Beiträge

Shell-Skript in ausführbare Datei umwandeln, geht das?

MP48 / 10 Antworten / Baumansicht Nickles

Liebe Gemeinde,

da sich meine Systemuhr ständig verstellt (Batterie ist wohl altersschwach), möchte ich die Uhr in meinem SuSE 9.3 per "netdate" stellen lassen. Also befragte ich dazu das Orakel, welches meinte, ich solle ein Skript erstellen mit folgendem Inhalt:

#!/bin/sh
netdate ptbtime1.ptb.de

Das klappt alles ganz wunderbar, aber um dieses Skript auszuführen, muss ich mich umständlicherweise erst mit "su" als root einloggen, dann in das Verzeichnis des Skriptes wechseln und letztendlich mit "sh [ProgName].sh" das Skript aufrufen. Aufwe/ändig! In der verstrichenen Zeit hätte ich auch die Zeile einfach in die Konsole kopieren können...
Also befragte ich das Orakel wieder und diesmal meinte es, in seiner unendlichen Weisheit, ich solle mein Skript mit "chmod 775" (?) zu einer ausführbaren Datei machen. Leider passiert dann, beim Klick auf das Skript, genau nichts.

Meine Frage dazu: Wie kann ich das nun hinbiegen, dass ich nur noch auf das Skript (wenn es z.B. auf dem Desktop liegt) klicken muss, und die Uhr wird gestellt? (Unter Windows hätte ich gesagt: eine Exe-Datei machen)

bei Antwort benachrichtigen
MP48 Nachtrag zu: „Shell-Skript in ausführbare Datei umwandeln, geht das?“
Optionen

Nachtrag

Beim rumprobieren und surfen, bin ich auf folgende Idee gekommen (bitte berichtige mich jemand, wenn ich groben Unfung denken sollte):
-Eintrag des Skriptes in visudo (? Bahnhof Gleis 8, scheint aber gängige Methode zu sein, siehe http://www.galileocomputing.de/openbook/unix_guru/node118.html)
-Das Shell-Skript abändern auf irgendwas mit "sudo netdate..."
-Definition eine Alias, z.B. "Zeit" (?)

bei Antwort benachrichtigen
KarstenW MP48 „Shell-Skript in ausführbare Datei umwandeln, geht das?“
Optionen

Melde dich als root im System an und editiere mit dem befehl "crontab -e" die Konfigurationsdatei von cron. Dann wird immer zur festgelegten Zeit der jeweilige befehl ausgeführt.
Mit "crontab -l" kannst du dir die Konfiguration anzeigen lassen.
Die manpage von crontab hilft auch:

"man crontab"

Ich mache das mit dem Programm rdate:

crontab -l
29 * * * * /usr/sbin/rdate 130.133.1.10 > /dev/null

Es wird in der 29. Minute zu jeder Stunde die Uhrzeit aktualisiert (und das jeden Tag im Monat).

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
REPI MP48 „Shell-Skript in ausführbare Datei umwandeln, geht das?“
Optionen

Falls Du einen DSL Anschluss via Router hast und dieser für Dich die Einwahl zum Provider erledigt, dann versuch Deinen Script mal in der /etc/init.d/boot.local einzutragen. Dann wird die Zeit bei jedem Systemstart aktualisiert.

Zum Einen, müsste dann schon die Netzwerkfunktionalität vorhanden sein und Zweitens wird die boot.local als root ausgeführt !

Gruß

repi

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
REPI MP48 „Shell-Skript in ausführbare Datei umwandeln, geht das?“
Optionen

Du kannst den netdate Befehl auch mit sudo im Skript aufrufen und in der /etc/sudoers den Eintrag für den Aufruf entsprechend handeln !

Lies dazu hier

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
KarstenW MP48 „Shell-Skript in ausführbare Datei umwandeln, geht das?“
Optionen

"Shell-Skript in ausführbare Datei umwandeln, geht das?"

Ein Shellscript ist eine Texdatei, die von der jeweiligen Shell (bash, csh, ksh ...) erstmal in einzelne Zeilen und dann die einzelnen Zeilen in einzelen Wörter zerlegt wird und diese Befehle dann nacheinander abarbeitet.
Um ein Shellscript ausführbar zu machen muß das "x" - Bit gesetzt worden sein, entweder das vom Eigentümer, der Gruppe oder alle anderen. Je nachdem wer das Shellscript ausführen darf.
Am Anfang steht meist so ein Pseudokommentar, wie "#!/bin/bash" . Dadurch wird die jeweils richtige Shell gestartet, wofür das Shellscript auch programmiert wurde.
Das Shellscript wird in einer eigenen Shell ausgeführt.

Ich kann dir diese Seite empfehlen ,wenn du Shellprogrammierung mit der bash lernen willst:

http://www.tldp.org/LDP/abs/html/

oder

http://www.tldp.org/LDP/abs/abs-guide.pdf



Oder kauf dir ein Buch im Buchhandel.

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
REPI MP48 „Shell-Skript in ausführbare Datei umwandeln, geht das?“
Optionen

Oktal-Zahl Zugriffsrechte
777 Lese- Schreib- und Ausführbar-Recht für alle
Achtung! Aus Sicherheitsgründen dürfen Programmdateien nicht diese Kombination von Benutzerrechten haben. Nur Verzeichnisse dürfen mit chmod 777 bearbeitet werden.
775 Lese- und Ausführbar-Recht für alle, Schreibrecht nur für user und group
666 Lese- und Schreib-Recht für alle.
Achtung! Verzeichnisse werden dadurch gesperrt
664 Lese-Recht für alle, Schreib-Recht für user und group


Rechte zum Ausführen sind die Bedingung das ein Script überhaupt ausgeführt wird !
Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
luttyy REPI „was zum chmod 775“
Optionen

Ohne dass ich mir hier in die Linuxgemeinde einmischen will,

so ein Batteriechen kostet 1 € 95, und ausserdem ist ein cmos-error dann nicht mehr weit.....

luttyy

Kein Backup? Kein Mitleid!
bei Antwort benachrichtigen
REPI luttyy „Ohne dass ich mir hier in die Linuxgemeinde einmischen will, so ein Batteriechen...“
Optionen

Das stimmt sicherlich, aber hier hat sich die Diskussion wie üblich verselbständig.

Man kommt halt von Arschbacken zu Kuchen backen ;-)

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
MP48 REPI „Das stimmt sicherlich, aber hier hat sich die Diskussion wie üblich...“
Optionen

bei Antwort benachrichtigen
MP48 Nachtrag zu: „ “
Optionen

Nanu, was ist denn hier los?
Es fehlt noch ein Zitat von @repi im Beitrag obendrüber
"Du kannst den netdate Befehl auch mit sudo im Skript aufrufen und in der /etc/sudoers den Eintrag für den Aufruf entsprechend handeln !"

bei Antwort benachrichtigen