Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Script Probleme | rsync Backup

Script Probleme | rsync Backup

jona26.07.0512:58
Hallo Macfreunde

dies ist mein erster Thread hier im Forum ich hoffe mir kann auch jemand weiterhelfen
bis jetzt sieht mein Script so aus @@

#!/bin/bash
diskutil repairPermissions /
mkdir /Volumes/MacSich
mount_afp "afp://;AUTH=No%20User% 20Authent@backup.local/MacSich" /Volumes/MacSich
/usr/bin/rsync -azE --update --exclude=*alt* --exclude=.* --stats --progress /Quellpfad /Zielpfad/
umount /Volumes/MacSich
shutdown -h now

Es funktioniert leider nicht ganz, weil zwei Prozesse benötigen root Rechte bzw. Adminrechte (diskutil, shutdown) und ich will nicht jedes mal das pw eingeben. Das Script soll also mit root rechten von einem normalen User ausgeführt werden (nicht admin). Ich hab den Eigentümer des Scripts auf root gestellt in der Annahme das es dann mit root Rechten auch ausgeführt wird aber Terminal will dann einen Adminuser. Kennt jemand eine Lösung?

Ich weiss crontab würde gehn, aber ich hätte es gerne ausführbar von einem normalen nicht admin user.

Kann man eigentlich auch in einem Script auch so eine art Variable einsetzen? also bsp.
würde ich gerne evtl. im Script im oberen teil so ne art Config stehn haben die in meinem Fall Quelle und Ziel festlegen.

#!/bin/bash
#Quelle und Ziel einstellen
set quelle = /Quellpfad
set ziel = /Zielpfad
#
/usr/bin/rsync -azE --update --exclude=*alt* --exclude=.* --stats --progress $quelle $ziel

Leider sind dies meine ersten gehversuche im Terminal, ich bitte um Verständnis

Schöne Grüsse Jona
0

Kommentare

MacMark
MacMark26.07.0513:04
Wozu soll das Ausschalten am Schluß gut sein?
„@macmark_de“
0
_svewie_
_svewie_26.07.0513:05
Um Variablen zu setzen:

QUELLE=/Quellpfad

zum Aufrufen:

$QUELLE

Gruß,
Sven.
„EOT“
0
jona26.07.0513:32
danke _svewie_ werde ich gleich mal testen

MacMArk das Script soll am Ende des Tages gestartet werden. Sicherung läuft und man kann heim gehn
0
smile
smile26.07.0514:08
wem das Skript gehört ist wurscht. Du kannst in der Konsole mittels sudo skriptname.sh erzwingen, dass das Skript im root Kontext ausgeführt wird. Das Passwort musst Du immernoch eingeben, aber nur noch beim starten des Skripts.

btw. Wenn das rsync selbst als root läuft werden ggf. mehr Dateien gesichert.

smile!
„Deinen Mac kannst du lieben oder hassen - Dein PC wird Dir immer scheißegal sein.“
0
jona26.07.0514:53
smile sudo geht nur wenn der benutzer admin ist das Script soll auf später auf mehreren Rechner laufen und es soll nicht jeder das PW des admin wissen. wahrscheinlich ist das wohl nicht möglich:-/
0
smile
smile26.07.0515:04
hmm, sudo geht immer, aber der Benutzer muss in der Liste der sudoers sein. Ein Passwort benötigst Du aber in jedem Fall, sonst kannst Du bestimmte Aktionen einfach nicht ausführen (müsstest also auf das shutdown und repair permissions verzichten). Bei letzterem ist mir der Sinn eines täglichen Checks aber eh nicht ganz klar - scheint ja extrem in Mode zu sein - Früher wars mal das reparieren der Prebindings, heute das reparieren der Rechte tzzzz...
„Deinen Mac kannst du lieben oder hassen - Dein PC wird Dir immer scheißegal sein.“
0
hoshbad
hoshbad26.07.0515:17
jona

Geh mal als root ins Terminal (also mittels "su") und gebe folgende 2 Befehle ein:

chown -R root:admin "Pfad und Name des Skripts"
chmod -R u+s "Pfad und Name des Skripts"

Danach sollte das Skript automatisch als root laufen. Über die Gefahren brauche ich dich sicher nicht aufklären, aber machen kannst du es so
0
jona26.07.0517:17
smile das stimmt, repairPermissions könnte man auch als cronjob einmal im monat laufen lassen... mal sehn wie sich das einrichten lässt.

danke hoshbad aber funktioniert leider auch nicht (s. Bild)
-rwsrwxrwx 1 root admin 499 Jul 26 15:04 /sichtestkopie.sh

ich versuche es mal über ein applescript...
mount rsync unmount shutdown
da sollte doch der shutdownbefehl tun oder?
0
hoshbad
hoshbad26.07.0517:49
Ups, ich meinte auch nicht "Name des Skripts", sondern du müsstest das bei jedem Programm, das dein Skript aufruft machen. Also bei diskutil, rsync, etc.

0
MacMark
MacMark26.07.0518:53
jona
Das was Du möchtest, wird in der Regel so umgesetzt:
• < 10.4: cronjob für root, der abends / nachts aktiv wird
• >= 10.4: launchd job für root, der abends / nachts aktiv wird
„@macmark_de“
0
hoshbad
hoshbad26.07.0519:01
MacMark
Das wäre wahrlich der bessere Weg, den ich bei meinem rsync-Backup auch benutze.
0
jona28.07.0519:20
Erst mal Danke an alle:-)
Ich denke ich habe es jetzt ganz gut gelöst auch wenn ich noch über ein paar Steinchen gestolpert bin:-D

Applescript
-------------------------------
display dialog "Backup auf MacSich starten?" with icon 2
tell application "Finder"
mount volume "afp://;AUTH=No%20User%20Authent@backup.local/MacSich/"
do shell script "echo Sicherung vom > /rsync_log.txt
date >> /rsync_log.txt
quelle=/quelle/
ziel=/ziel/
/usr/bin/rsync -azE --update --exclude=*-alt-* --exclude=.* --exclude=*.jpg --exclude=*.tif --exclude=*.psd --exclude=*.pdf --exclude=*Im-Export+Plots* --stats --progress $quelle $ziel >> /rsync_log.txt
umount /Volumes/MacSich
exit"
end tell
tell application "Finder"
shut down
end tell

-------------------------------
Hat jemand noch einen Verbesserungsvorschlag?

Als erstes hatte ich versucht mein bestehndes Shellscript einzubinden und zwar so das es im AppleScriptbundle liegt. Aber anscheinend geht das nicht oder besser gesagt ich konnte keine Lösung ergoogln:-y

Wäre es eigentlich möglich ein Dialogfenster einzubauen das abfrägt ob man nach dem Backup weiter arbeiten will oder den Rechner runterfahren will?
Müsste ja eigentlich mit der Funktion if gehn? Kann mir da vielleicht einer weiterhelfen?:-[
Achso vielleicht weiss das ja einer, bei date wollte ich eigentlich
date "+%d/%m/%y %H:%M:%S"
Nur zickt da AppleScript...
Fehlermeldung: Es wurde „Ausdruck“ erwartet, aber ein „Unbekanntes Token“ wurde gefunden. Ursache ist das % Zeichen(fear)

Schöne Grüsse Jona
0
jona05.08.0514:02
danke für die hilfe
display dialog "Backup auf MacSich starten?" with icon stop
set Question to ¬
display dialog "Möchten Sie den Computer nach dem Backup?" buttons ¬
{"Anlassen", "Ruhezustand", "Ausschalten"} default button "Ausschalten"
set answerQ to button returned of Question
if answerQ is "Anlassen" then
display dialog "Ok, aber arbeite dann auch weiter " buttons ¬
{"Ok"} default button "Ok" giving up after 3
end if
tell application "Finder"
mount volume "afp://;AUTH=No%20User%20Authent@backup.local/MacSich/"
do shell script "echo Sicherung vom > ~/rsync_log.txt
date >> ~/rsync_log.txt
quelle=~/quelle/
ziel=/ziel/
/usr/bin/rsync -azE --update --exclude=*-alt-* --exclude=.* --exclude=*.jpg --exclude=*.tif --exclude=*.psd --exclude=*.pdf --exclude=*Im-Export+Plots* --exclude=*berholt* --stats $quelle $ziel >> ~/rsync_log.txt
umount /Volumes/MacSich
exit"
end tell
if answerQ is "Ruhezustand" then
tell application "Finder"
sleep
end tell
end if
if answerQ is "Ausschalten" then
tell application "Finder"
shut down
end tell
end if

Es geht bestimmt auch anderes bzw. kürzer aber so funktioniert es

Gruß Jona
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.