• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

crontab erstellen

Pinky69

Apfel der Erkenntnis
Registriert
10.03.06
Beiträge
727
Hallo,

ich habe hier etwas womit ich nicht so richtig klar komme. Ich habe mit AppleScript ein Script geschrieben das ich als "dateiname.scpt" gesichert habe, auch als "dateiname.app".
Die app-datei ist lokal ausführbar und funktioniert auch. Die scpt-datei würde ich gerne in einen crontab einbauen, nur wie mache ich das?
Habe es mit "CronniX" versucht, aber das crontab wir einfach nicht ausgeführt. Bekomme in der Konsole immer diese Meldung.
"Jan 11 11:50:00 SERVERNAME /usr/bin/osascript: kCGErrorRangeCheck : Window Server communications from outside of session allowed for root and console user only"

Habe das Crontab schon versucht als Admin und als Root anzulegen, bekomme aber immer die gleiche Meldung. o_O

Wer kennt sich mit Crontab aus oder hat mir einen anderen Tipp?

Gruß
Pinky
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
1. Cron ist obsolet. Nimm launchd.
2. GUI-Interaktionen (GUI-Skripte gehören dazu) sind nur für Programme erlaubt, die zum eingeloggten User gehören. Das sagt auch die Fehlermeldung.
 

ImperatoR

Roter Astrachan
Registriert
02.12.06
Beiträge
6.261
Im Terminal

Code:
crontab -e

aufrufen und die s-Taste drücken, um in den Schreibmodus zu gelangen.

Dann kann man einen Befehl eingeben, z.B.:

Code:
# cron table
# = = = = = = = = = = = = = =
# M S T M W Command
5 * * * * /Pfad/zum/Skript > /dev/null 2>&1
# = = = = = = = = = = = = = =

Hier: Das Skript wird alle Stunde und fünf Minuten ausgeführt (13:05, 14:05 usw.). Mit > /dev/null 2>&1 werden Logdateien unterdrückt.

Da ich nicht weiß, was wo wie und überhaupt das für ein Skript ist, kann ich keine genauere Aussage treffen. Und MacMark hat recht!
 

Pinky69

Apfel der Erkenntnis
Registriert
10.03.06
Beiträge
727
Danke für eure Tipps.

Ist eben so das ich von einem OSX Server 10.4.11 auf einem NT-Server in bestimmten Verzeichnissen diese dot-dateien (._dateiname) löschen will.
Wie kann ich das per cronjob hinbekommen?
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Probier das mal:
Mac OS X v10.4 and later: How to prevent .DS_Store file creation over network connections
http://support.apple.com/kb/HT1629?locale=de_DE

Die ._ Dateien enthalten jedoch die Resource Forks und die zu löschen, ist nicht schlau. Das ist nötig auf Dateisystemen, die keine Multi-Fork-Dateien handhaben können. Da muß die Resource-Fork dann in eine extra Datei.

Allerdings sollte NTFS das (mehrfache Datenströme für eine Datei) können.
http://technet.microsoft.com/en-us/library/cc976929.aspx

NT's Macintosh support stores the resource fork portion of files in a NTFS hidden stream. The data fork portion of the file is stored as a normal, visible file.
http://www.alcpress.com/articles/ads.html

Also einfach mal den NT-Server richtig einrichten.
 
Zuletzt bearbeitet:

Pinky69

Apfel der Erkenntnis
Registriert
10.03.06
Beiträge
727
@MacMark
je das mit den Resource Froks ist mir klar, aber das ist ja das Problem. Die Dateien werden auf einem Mac bearbeitet und in ein NT-Verzeichniss abgelegt wo sie manuell abgeholt werden, dabei werden eben auch immer diese Resource-Dateien mit abgelegt und von dem Windows aber nicht automatisch wieder gelöscht.

Und eben das würde ich gerne mit einem Cronjob der auf dem Macserver läuft anstarten, das löschen.

Gruß
Chris
 
Zuletzt bearbeitet:

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Ich hatte meinen Beitrag nochmal ergänzt. Mach mal reload.
 

Pinky69

Apfel der Erkenntnis
Registriert
10.03.06
Beiträge
727
NT-Server neu einrichten ist leichter gesagt als getan, nur unsere NT-Jungs blicken das doch eh nicht.
Gibt es keine Script-Möglichkeit diese Resource Fork Dateien scriptiert vom Mac zu erledigen?
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Und eben das würde ich gerne mit einem Cronjob der auf dem Macserver läuft anstarten, das löschen.
So etwas sollte der NT Server selbst tun. (per --> Taskplaner)
Alle "verwaisten" ._* Dateien können bedenkenlos gelöscht werden (also alle diejenigen, zu denen es kein gleichnamiges Objekt ohne dieses Präfix mehr gibt).
Gibt es keine Script-Möglichkeit diese Resource Fork Dateien scriptiert vom Mac zu erledigen?
Natürlich ginge das. Aber durch Zugriffsrechte, offene Dateien und eine Menge anderer Fallstricke ("race conditions") könntest du dabei auf unerwartete Probleme stossen, die der Server selbst damit nicht hat. Ausserdem wird der Job auf dem Server laufend gleich sämtliche Netzfreigaben und Festplatten bearbeiten können (auch für dich nicht oder nur eingeschränkt verfügbare), und Netzwerkresourcen verbraucht das dort auch keine.
Deine "NT-Jungs" sollten es gebacken bekommen, eine entsprechende kleine Batchdatei zusammenzunageln.
 

Pinky69

Apfel der Erkenntnis
Registriert
10.03.06
Beiträge
727
Was mich auch wundert ist folgendes. Habe das AppleScript mal als Datei.app gesichert und kann es komischer weise ohne Probleme direkt starten, durch doppelklick auf das app-Icon.
Warum bekommt der Mac das dann nicht automatisch einmal am Tag gestartet? :oops:

Werde die NT-Jungs aber mal anhauen. ;)
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Was mich auch wundert ist folgendes. Habe das AppleScript mal als Datei.app gesichert und kann es komischer weise ohne Probleme direkt starten, durch doppelklick auf das app-Icon.
Warum bekommt der Mac das dann nicht automatisch einmal am Tag gestartet? :oops:

Weil es eine Sicherheitslücke wäre, wenn jemand von außerhalb Deiner User-Session Deine GUI steuert!

Wenn die Ihr NTFS richtig einstellen, dann sieht Windows die ._-Dateien nicht, weil sie als zweiter NTFS-File-Stream gespeichert werden und nicht als "normale" Dateien. So wie es HFS+ auch tut.
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
1. Cron ist obsolet.[…]
Leider nicht ganz, es gibt immer noch ein paar wenige Sachen die [tt]cron[/tt] kann die mit [tt]Launchd[/tt] leider nicht möglich sind, oder nicht korrekt funktionieren. Ja, ärgerlich, aber leider Realität. Abgesehen davon, daß es deutlich mehr Aufwand ist ein Launchd-Item zu bauen als einen [tt]crontab[/tt] Eintrag zu erstellen.
Gruß Pepi
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Leider nicht ganz, es gibt immer noch ein paar wenige Sachen die [tt]cron[/tt] kann die mit [tt]Launchd[/tt] leider nicht möglich sind, oder nicht korrekt funktionieren. Ja, ärgerlich, aber leider Realität.
LOL. Dieses Märchen hätte ich gern etwas näher erläutert.
(Wirkt übrigens ganz besonders amüsant wenn man ergänzend dazu sagt, dass auch das Programm "cron" selbst schon längst von launchd kontrolliert wird.)

Abgesehen davon, daß es deutlich mehr Aufwand ist ein Launchd-Item zu bauen als einen [tt]crontab[/tt] Eintrag zu erstellen.
Ein typisches launchd Item baue ich in gefühlten 5-10 Sekunden mit einer einzigen Zeile Text. Um wieviel höher kann der Aufwand denn da in Wirklichkeit schon sein?
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Daß [tt]cron[/tt] von Launchd gestartet wird ist mir schon klar, und leider ist es kein Märchen. Trigger wie @reboot gibt es in Launchd nicht. Die Calendar Intervall Möglichkeiten von Launchd sind denen von [tt]cron[/tt] leider auch unterlegen, jedenfalls wenn man für den gleichen Effekt nicht mehrere Items anlegen will.

Andere praktische Trigger von Launchd die man gerne verwenden würde, weil sie Sachen erlauben die mit [tt]cron[/tt] nicht möglich sind, sind leider so verbuggt, daß man sie erst recht wieder vergessen kann, was aber nicht Gegenstand dieser Diskussion ist.

An einem Beispiel für so ein einzeiliges Launchd Item bin ich interessiert! Ich lerne immer gern was Neues!
Gruß Pepi
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Trigger wie @reboot gibt es in Launchd nicht.
Es gibt also gar keinen Schlüssel "RunAtLoad" ?

Die Calendar Intervall Möglichkeiten von Launchd sind denen von [tt]cron[/tt] leider auch unterlegen, jedenfalls wenn man für den gleichen Effekt nicht mehrere Items anlegen will.
Purer Unfug.
Code:
[SIZE="-1"]StartCalendarInterval 
  <dictionary of integers [B][COLOR="Red"]or array of[/COLOR][/B] dictionary of integers>
[/SIZE]

An einem Beispiel für so ein einzeiliges Launchd Item bin ich interessiert!
Für die simple Funktionalität eines cronjobs genügt:
Code:
[SIZE="-1"]sudo defaults write /Library/LaunchDaemons/example '{ Label="example"; ProgramArguments=( "/foo/bar" ); StartCalendarInterval={ Day=15; Hour=5; Minute=0; }; }';[/SIZE]
So what?
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
… und wenn man danach Rastafaris Dämon als XML betrachten möchte, dann so umwandeln:
Code:
sudo plutil -convert xml1 /Library/LaunchDaemons/example.plist
 

Pinky69

Apfel der Erkenntnis
Registriert
10.03.06
Beiträge
727
@MacMark
jaja die NT Jungs können diese ._Dateien hidden aber die Dateien selbst sind ja immer noch auf dem Windows Server.

Wie ist das wenn ich hier eine app-Datei habe die auch ausführbar ist, kann ich die alle 15 Min. automatisch starten?

Gibt es für den launchd eigentlich ein vernünfitiges GUI für OSX 10.6 ?
Anleitung "Wie baue ich mir eine plist für launchd" ? ;)

Sorry die doofen Fragen aber habe mit programmierung wenig am Hut.