Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
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
jona
26.07.05
12: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
Hilfreich?
0
Kommentare
MacMark
26.07.05
13:04
Wozu soll das Ausschalten am Schluß gut sein?
„@macmark_de“
Hilfreich?
0
_svewie_
26.07.05
13:05
Um Variablen zu setzen:
QUELLE=/Quellpfad
zum Aufrufen:
$QUELLE
Gruß,
Sven.
„EOT“
Hilfreich?
0
jona
26.07.05
13: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
Hilfreich?
0
smile
26.07.05
14: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.“
Hilfreich?
0
jona
26.07.05
14: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:-/
Hilfreich?
0
smile
26.07.05
15: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.“
Hilfreich?
0
hoshbad
26.07.05
15: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
Hilfreich?
0
jona
26.07.05
17: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?
Hilfreich?
0
hoshbad
26.07.05
17: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.
Hilfreich?
0
MacMark
26.07.05
18: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“
Hilfreich?
0
hoshbad
26.07.05
19:01
MacMark
Das wäre wahrlich der bessere Weg, den ich bei meinem rsync-Backup auch benutze.
Hilfreich?
0
jona
28.07.05
19: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
Hilfreich?
0
jona
05.08.05
14: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
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.