[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:
(11435 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:
(11397 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:
(11384 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:
(11378 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:
(11372 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:
(11273 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

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
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=311

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/