Terminal-Befehle aus Datei?

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von warumauchnicht, 19.01.2004.

  1. warumauchnicht

    warumauchnicht Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    MacUser seit:
    06.01.2004
    Terminal-Befehle aus Datei

    Hallo,

    ich probiere gerade die ersten Schritte mit dem Terminal, habe eigentlich auch zu fast jeder Frage schon etwas gefunden ;-)
    Leider stehe ich aber immer noch vor einem Problem:
    Ich will mehrere Befehle hintereinander ausführen, ohne sie immer einzelnd einzugeben bzw. hintereinander per Copy&Paste einzufügen.

    Als Beispiel:
    cp -R /Volumes/meineCD/meineDir/ /usr/local/mysql/data/
    cp /Volumes/meineCD/meinePHP.ini /usr/local/php/lib/php.ini


    Gibt es eine Möglichkeit, Befehle in einer Datei zu speichern und diese dann auszuführen oder etwas ähnliches?

    Grüße,
    Tino

    Add: Weil die Frage ja beantwortet ist, habe ich den Titel geändert ;-)
     
    Zuletzt bearbeitet: 20.01.2004
  2. Jiji

    Jiji MacUser Mitglied

    Beiträge:
    289
    Zustimmungen:
    0
    MacUser seit:
    25.02.2003
    Ja das geht und ist auch ganz einfach. Du legst einfach eine Datei an zb. bla.sh und schreibst das so hinein:

    PHP:
    #!/bin/sh

    cp -/Volumes/meineCD/meineDir/ /usr/local/mysql/data/
    cp /Volumes/meineCD/meinePHP.ini /usr/local/php/lib/php.ini

    Du kannst das Skript dann via Terminal ausführen. Falls er dir sagt Permissions Denied, musst du nur chmod +x bla.sh machen um es ausführen zu können.
     
  3. warumauchnicht

    warumauchnicht Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    MacUser seit:
    06.01.2004
    Thanks ;-)

    Und wie lautet der Befehl zum ausführen? Mit open bekomme ich die Datei nur im Editor (SubEthaEdit) geöffnet - logisch aber nicht erwünscht ;-)

    Grüße,
    Tino
     
  4. lundehundt

    lundehundt MacUser Mitglied

    Beiträge:
    19.352
    Zustimmungen:
    881
    MacUser seit:
    22.02.2003
    wenn die Datei ausfuehrbare Kommandos enthaelt und auf .sh endet (also ein script ist) wird dieses script durch Eingeben des Namens mit der Endung .sh und anschl. "enter" ausgefuehrt.

    Cheers,
    Lunde
     
  5. warumauchnicht

    warumauchnicht Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    MacUser seit:
    06.01.2004
    Über .sh-Datei einloggen?

    Danke euch allen, funktioniert auch!

    Jetzt habe ich aber noch eine Frage, die sich daran anschließt:
    Kann ich mich auch automatisch in dieser Datei einloggen?

    Das ganze soll zu einer Datensicherung dienen, wobei die Daten aber nur über root zu erreichen sind. Der Benutzer ist jedoch nicht so firm, dass ich ihm jedesmal zumuten will, sich über root einzuloggen (nachher macht er etwas kaputt ;-)).

    Ich würde es mir so vorstellen, es klappt aber leider nicht:
    PHP:
    # Einlogbefehl
    login root

    # Normalerweise wird ja jetzt das Passwort abgefragt,
    # deswegen geb' ich's
    musterpasswort

    # jetzt die restlichen Befehle
    cp usw...
    Gibt es hierfür eine Lösung?

    Thanx, Tino
     
  6. warumauchnicht

    warumauchnicht Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    MacUser seit:
    06.01.2004
    Hallo, ich frag mal einfach noch mal nach, ich hoffe, ihr verzeiht das ;-)

    Also: Gibt es eine Möglichkeit, sich in einer .sh - Datei als User x einzuloggen, wenn man sein Passwort kennt?

    Thanx, Tino
     
  7. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    hallo zusammen,

    du brauchst nicht in der Datei einen login befehl auszuführen, sondern kannst das ganze über die Rechtevergabe regeln.

    Lass mich mal kurz überlegen kopfkratz

    also zuerst machst du

    sudo chown root <name_des_scripts>
    dann
    sudo chgrp admin <name_des_scripts> (unter Panther)
    oder
    sudo chown wheel <name_des_scripts> (unter Jaguar)

    Bei sudo wirst du beim erstenmal innerhalb fünf minuten nach einem passwort gefragt, da gibst du DEIN Passwort ein (funktioniert nur, wenn Du ein Admin-Benutzer bist)

    Die Folge ist, dass der Eigentümer der Skriptdatei nun root und die Gruppe admin bzw. wheel ist.
    Alternativ kannst du das Skript gleich in einer rootshell schreiben

    nun machst du

    sudo chmod 4755 <name_des_scripts>

    Deiser Befehl hat zur Folge, dass das Script von jedem ausgeführt werden darf, aber mit den Rechten des Eigentümers (hier also von root) ausgeführt wird.
    voila:
    Ziel erreicht

    btw
    ein Skript kann, aber muss nicht mit dem suffix .sh enden.
    Der Name ist beliebig, wichtig ist aber der headbang (#!/bin/sh oder #!/bin/tcsh oder auch #!/bin/bash - je nachdem).
    Wenn du in deinem Home ein Verzeichnis bin anlegst, musst du noch nicht einmal den kompletten Pfad angeben, sondern das Skript ist direkt von der Kommandozeile aus ausführbar.
    Wenn dd das Skript unter /bin oder /usr/bin ablegst ist es für jeden User ausführbar.
     
  8. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Skript für Backup von SQL Daten

    halo nochmal,

    jetzt hab ich erst die Befehle gelesen, die Du in Deinem Skript haben möchtest. :D

    Sieht ein bisschen so aus, als ob du ein backup deiner SQL Datenbank durchführen möchtest,
    Dafür hab ich unter Jaguar mal ein Skript geschrieben, das ich per Cronjob täglich ausgeführt habe.
    Dann brauchst du noch nicht einmal mehr einen Benutzer damit zu belasten.

    Das Skript macht folgendes:

    1. Es legt 7 durchnummerierte backups der sql-Datenbanken an.
    2. Die backups werden getar´t und gezip´t
    3. Bei jedem Durchlauf werden die bereits vorhandenen Backups um eine Nummer erhöht, das siebte fliegt jeweils raus

    Auf diese Weise hat man immer eine Woche Backups in Reserve, ist also auch ein bisschen gegen schleichenden Datenverlust (User macht jeden Tag Blödsinn in der SQL-Datenbank) geschützt.

    Wenn jemand Interesse hat, poste ich das Skript hier.
     
  9. warumauchnicht

    warumauchnicht Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    MacUser seit:
    06.01.2004
    Danke maceis,

    mit sudo klappt's wunderbar und auch mit deiner Datensicherung liegst du nicht daneben ;-)

    Bin allerdings mittlerweile auf die mitgelieferte Routine mysqldump gekommen (handelt sich um mySQL) - geht auch prima per Terminal und ist einfacher zu handeln.

    Aber trotzdem vielen Dank, da sudo nun nur noch eine Passworteingabe nötig macht und der Rest von alleine läuft.

    Tino
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    prima warumauchnicht

    die o. g. Prozedur ermöglich allerdings, dass ein Skript auch ohne Eingabe von sudo mit root-Rechten abläuft.

    Das bewirkt, dass man Benutzern, die keine Adminrechte haben, erlauben kann, bestimmte Skripts oder Befehle mit root-Rechten auszuführen.

    Vorteil: jemand braucht kein root-Passwort zu kennen, um bestimmte genau definierte Wartungsaufgaben auszuführen
     
Die Seite wird geladen...

Diese Seite empfehlen