[GastForen Programmierung/Entwicklung AppleScript bash Script in Applescript ausführen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

bash Script in Applescript ausführen

michael m.
Beiträge gesamt: 162

25. Aug 2011, 12:04
Beitrag # 1 von 6
Bewertung:
(10059 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe ein Shellscript geschrieben in dem ich mit rSync eine Vollsicherung mache. Da ich es von ical zu bestimmten Zeiten ausführen lassen möchte, benötige ich ein Applescript.

Ich habe mal folgende Zeilen geschrieben, aber die Syntax scheint nicht zu stimmen.

Code
tell application "Finder" 
try
do shell script "Users:michael:Desktop:BackupScripte:rSyncBackupScript2a.command"
end try
end tell


Viele Grüsse

Michael
X

bash Script in Applescript ausführen

masterkey
Beiträge gesamt:

26. Aug 2011, 12:56
Beitrag # 2 von 6
Beitrag ID: #478951
Bewertung:
(10021 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi michael

was du willst, ist nicht ein bash skript in applescript ausführen, das würde anders aussehen. du möchtest ein bash skript über applescript ausführen wenn ich das richtig verstehe.

du brauchst für das ausführen von shell skripten den finder nicht zu bemühen. aber du musst in shell skripten dafür mit sogenannten posix-pfaden arbeiten. shell-skript-dateien haben normalerweise die endung ".sh".

versuchs mal damit:


Code
do shell script "'/bin/bash' '/Users/michael/Desktop/BackupScripte/rSyncBackupScript2a.command'" 



wer zum diesem thema googelt findet auf dem ersten treffer folgendes:

http://developer.apple.com/...s/tn2065/_index.html



viel spass!


als Antwort auf: [#478846]

bash Script in Applescript ausführen

michael m.
Beiträge gesamt: 162

26. Aug 2011, 13:43
Beitrag # 3 von 6
Beitrag ID: #478966
Bewertung:
(10008 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo masterkey,

vielen dank für die Informationen.
Lieder erhalte ich das Ergebnis ""skipping directory /Users/Michael"

Ich weiss nicht so recht welche Wege ich gehen soll?

Erst arbeite ich mich in die Shell ein und mache ein kleines Script.

Zitat #!/bin/bash
# Rsync Backup Script - Vollbackup (Wochen Script)
# Erstellt exakte Spiegelung vom Mac auf DiskStation 509+
# Copyright (C) 25.08.2011 Michael Madej

##########################################################
# Quelle
##########################################################
# Anmerkungen über den Backslash
# ohne Slash am Ende wird der gesamte Quellpfad bis zum Wurzelverzeichnis in das definierte Zielverzeichnis erstellt
# mit Slash am Ende wird das Verzeichnis ohne gesamten Pfad bis zum Wurzelverzeichnis erstellt

SOURCE="/Users/michael/00rSyncTestQuelle/";
# SOURCE="/Users/Michael";

##########################################################
# Ziel
##########################################################

DESTINATION="/Users/michael/01rSyncTestZiel";
# DESTINATION="/Volumes/Backup/Benutzer";

##########################################################
# Log File Verzeichnis
##########################################################

LOGFILE="/Users/michael/02Logs/rSyncLog.txt";
# LOGFILE="/Volumes/Backup/rSyncLogfiles/rSyncLog.txt";

##########################################################
# Optionen
##########################################################

OPTIONS="-abhuvX --delete --stats";

# rSync Optionsschalter
# -n Simuliert die gesamte Aktion ohne es aus zu führen.
# -a Alle Rechte und Eigentümer der Quelldatei werden auf dem Zielmedium zu übernommen.
# -b sorgt dafür, dass durch die Option --delete gelöschte sowie alle veränderten Objekte gesichert werden.
# --backup-dir Mit diesem Parameter kann man ein Verzeichnis dafür angeben
# -u Aktualisiert nur geänderte Daten der Quelle im Ziel überspring neuere Dateien
# -v Gibt den Synchronisierungsprozess im Terminalfenster aus
# -S Optimiert das Handling für SparseBundles (Format der Aperture Library)
# -p aktiviert die option
# --progress Fortschrittsanzeige beim Transfer
# --partial Fortsetzung des Transfers bei Abbruch
# -z aktiviert die Komprimierung für die Datenübertragung
# -X, --xattrs aktiviert aktiviert die erweitereten Dateiattribute wie Finder Etiketten
# -h, --human-readable output numbers in a human-readable format

# --delete Löscht Dateien und Ordner, die in der Quelle nicht mehr vorhanden sind
# --exclude=Muster schließt ein bestimmtes Muster von der Sicherung aus
# --exclude=Ordner/ schließt Ordner von der Sicherung aus
# --link-dest=Verzeichnis erstellt harte Links in ein Verzeichnis wenn eine Datei nicht geändert wurde
# --stats zeigt einen ausführlichen Report am Ende einer Übertragung an
# --log-file=FILE log what we're doing to the specified FILE

##########################################################
# Befehl
##########################################################

rsync $OPTIONS $SOURCE $DESTINATION >> $LOGFILE


Dann möchte ich es Zeitgesteuert laufen lassen.
Da ich mit ical arbeite, freute ich mich schon dort das Script ein zu binden.

????? Was sit denn mit dem Script ??
iCal unterstützt keine Shell scripte, sondern nur Applescript.
Zumindest habe ich das so heruas gefunden.

Na dann, habe ich in Applescript folgendes geschrieben, was in etwa genau so funktioniert!

Zitat tell application "Finder"
if not (exists disk "BACKUP") then
-- display dialog "Backup Laufwerk ist nicht verfügbar, es wird gemountet"
-- mount volume "afp://192.168.192.209/Backup" as user name "BENUTZERNAME" with password "PASSWORT"
delay 3
end if
-- display dialog "Backup Laufwerk ist verfügbar, Sicherung wird ausgeführt"

set SOURCE to "/Users/michael/00rSyncQuelle/"
set DESTINATION to "Users/michael/01rSyncZiel"
set OPTIONS to "-vaE"
set LOGFILES to "/Users/michael/02rSyncLOG/rSyncLogfiles.txt"

-- display dialog "rsync " & OPTIONS & " " & SOURCE & " " & DESTINATION & " >> " & LOGFILES

try
-- do shell script "rsync -vaE --delete /Users/michael/00rSyncQuelle/ Users/michael/01rSyncZiel"
do shell script "rsync " & OPTIONS & " " & SOURCE & " " & DESTINATION
end try
end tell


Jetzt kommt die grosse Frage.
Womit soll ich denn in Zukunft arbeiten?

Shell Scripte oder Applescript.
Ich bin noch am Anfang mit der ganzen Programmiererei und mit Applescript habe ich schon etwas Erfahrung aber man vergisst wieder einfach etwas wenn man es nicht ständig macht.

Andererseits wollte ich auch UNIX befehle kennen lernen, wie man doch auch andere Kenntnisse haben soll.

Jetzt im kommenden Semester kommt jetzt noch PASCAL dazu.

Womit soll ich demnächst meine kleinen Scripte erstellen?
Ich möchte auch nicht ständig umschreiben müssen.

Was kannst Du denn da raten?

Viele Grüsse
Michael


als Antwort auf: [#478951]
(Dieser Beitrag wurde von michael m. am 26. Aug 2011, 13:45 geändert)

bash Script in Applescript ausführen

masterkey
Beiträge gesamt:

26. Aug 2011, 14:06
Beitrag # 4 von 6
Beitrag ID: #478976
Bewertung:
(10002 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo michael

ganz grundsätzlich versuche ich hier natürlich die frage zu beantworten bzw. das problem zu lösen, ohne alles nach den eigenen vorstellungen umzukrempeln.

aber in diesem fall hätte ich wohl auch ein appleskript geschrieben, welches ein 'do shell script' enthält und den shellskript-code direkt in dem appleskript untergebracht - ist ja nur eine zeile.

ich für mich benutze wenn immer möglich shell befehle, aber meistens in appleskripte eingebettet (do shell script) - so gesehen arbeite ich grundsätzlich mit applescript.

aber wie du schon bemerkt hast, ist alles eine sache der übung. am besten machst du es so, wie es dir am leichtesten fällt.


zum eigentlichen thema zurück...
hast du jetzt eine lösung für dein problem?
läuft eine deiner varianten?


weiterhin viel spass.


als Antwort auf: [#478966]

bash Script in Applescript ausführen

michael m.
Beiträge gesamt: 162

26. Aug 2011, 14:14
Beitrag # 5 von 6
Beitrag ID: #478977
Bewertung:
(9996 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo masterkey,

ich werde das Applescript benutzen und es funktioniert.
Ich denke in Zukunft werde ich mehr Applescript Favorisieren.

Es läßt sich überall integrieren.

Vielen Dank

Michael


als Antwort auf: [#478976]

bash Script in Applescript ausführen

michael m.
Beiträge gesamt: 162

31. Aug 2011, 15:29
Beitrag # 6 von 6
Beitrag ID: #479246
Bewertung:
(9897 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

das Applescript funktioniert jetzt nicht mehr.

Code
tell application "Finder" 
if not (exists disk "BACKUP") then
display dialog "Backup Laufwerk ist nicht verfügbar, es wird gemountet"
mount volume "afp://192.168.201.19/Backup" as user name "BENUTZERNAME" with password "PASSWORT"
delay 3
end if

display dialog "Backup Laufwerk ist verfügbar, Sicherung wird ausgeführt"

set SOURCE to "/Users/michael1"
set DESTINATION to "/Volumes/Backup/Benutzer"
set OPTIONS to "-auvX --delete --stats"

try
do shell script "rsync " & OPTIONS & " " & SOURCE & " " & DESTINATION
end try
end tell


ERGEBNIS aus Applescript:

Code
tell application "Finder" 
exists disk "BACKUP"
--> true
display dialog "Backup Laufwerk ist verfügbar, Sicherung wird ausgeführt"
--> {button returned:"OK"}
do shell script "rsync -auvX --delete --stats /Users/michael1 /Volumes/Backup/Benutzer"
--> error number -10004
end tell
tell current application
do shell script "rsync -auvX --delete --stats /Users/michael1 /Volumes/Backup/Benutzer"
--> error "rsync: -auvX: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-42/rsync/main.c(1333) [client=2.6.9]" number 1
end tell


Was ich direkt gesehen habe ist, das dort Client=2.6.9 verwendet wird??
Aber ich habe mittels MacPorts das rsync aktualisiert!
Wenn ich im Terminal rsync -Version eingeben erhalte ich
als Antwort zurück:

rsync version 3.0.8 protocol version 30
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
...
...

Wenn ich das Shell-Script mit den gleichen Optionen ausführe, klappt es.

Die Option -X macht das Problem, das sind die erweiterten Attribute aber ich benötige es unbedingt.

Vielen Dank

Michael


als Antwort auf: [#478977]
(Dieser Beitrag wurde von michael m. am 31. Aug 2011, 15:32 geändert)
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.11.2020

Wie schafft man einen gleichbleibenden Farbeindruck im Druck und elektronischer Ausgabe? Peter Jäger erklärt wie es geht!

Zoom Meeting
Donnerstag, 26. Nov. 2020, 19.00 - 21.01 Uhr

Vortrag

Agenda: Vorstellung Verein freieFarbe e.V. und pro2media gmbh Was verlangt der Kunde? Gleichbleibende Farbe über sämtliche Ausgaben? Für welche Ausgaben (Offset- oder Digitaldruck, Kopiersysteme, elektronische Ausgaben) Umgang mit Farben bisher: mehrere Logos- und Bildvarianten Logo Entwicklung heute: anhand pro2media gmbh, ausgehend von nur einer Logovariante Crossmediale Farben bestimmen Einsatz von Hilfsmitteln wie digitaler- und gedruckter Farbatlas und Gamutmap.com Sauberes Farben CD erstellen mit eindeutig definierten Werten Umsetzung in den Softwaren (Word, FileMaker, InDesign, Illustrator, Web CMS, OpenSource usw.) Verarbeitung in den Druckereien (anhand Callas pdfToolbox)

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

idugs66.eventbrite.com

Grafik- und Bilddaten crossmedial aufbereiten
Veranstaltungen
30.11.2020 - 01.12.2020

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Montag, 30. Nov. 2020, 08.30 Uhr - Dienstag, 01. Dez. 2020, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/video-und-audio-publishing/adobe-premiere-pro-cc/kurs-adobe-premiere-pro-cc-basic

Neuste Foreneinträge


Script um 2 Items von CC Library auf eine Seite zu plazieren

Quellenangaben von Bildern innerhalb des Dokumentes pflegen

Anpassung von Scriptfunktion auf Bleedbox

Schrift in Form umwandeln

Freitagsangebote für die 3 Programme von Serif

Zwei Fragen zur Tabelle

Hyperlink aktualisierung nach Dateiumbenennung

Transparente Klebefolie bedrucken

Externe Verlinkung in Indesign ohne www

Glyphen-Salat
medienjobs