| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		roser •-->
  
 
  Anmeldedatum: 29.09.2003 Beiträge: 61 Wohnort: Solingen
  | 
		
			
				 Verfasst am: 23.01.2004 - 10:52    Titel: Skript zum automatischen Starten der Jobs daily, weekly.. | 
				     | 
			 
			
				
  | 
			 
			
				, monthly
 
 
Das Skript kann am besten als Startobjekt benutzt werden:
 
 
property letztesDatumTag : date "Samstag, 10. Dezember 1966 12:00:00 Uhr"
 
property letztesDatumWoche : date "Samstag, 10. Dezember 1966 12:00:00 Uhr"
 
property letztesDatumMonat : date "Samstag, 10. Dezember 1966 12:00:00 Uhr"
 
 
-- Starten --
 
set heuteDatum to (current date)
 
set anweisung to ""
 
 
-- Täglich
 
if (date string of heuteDatum) ? (date string of letztesDatumTag) then
 
	
 
	-- Der tägliche Job muß ausgeführt werden
 
	set anweisung to anweisung & "sh -c " & "/etc/daily"
 
	
 
	--Merken
 
	set letztesDatumTag to heuteDatum
 
	
 
end if
 
 
-- Wöchentlich
 
if heuteDatum > (letztesDatumWoche + 1 * weeks) then
 
	
 
	-- Wöchentlich-Job muß ausgeführt werden
 
	if anweisung = "" then
 
		set anweisung to anweisung & "sh -c " & "/etc/weekly"
 
	else
 
		set anweisung to anweisung & "; /etc/weekly"
 
	end if
 
	
 
	--Merken
 
	set letztesDatumWoche to heuteDatum
 
end if
 
 
-- Monatlich
 
if heuteDatum > (letztesDatumMonat + 4 * weeks) then
 
	
 
	-- Monats-Job muß ausgeführt werden
 
	if anweisung = "" then
 
		set anweisung to anweisung & "sh -c " & "/etc/monthly"
 
	else
 
		set anweisung to anweisung & "; /etc/monthly"
 
	end if
 
	
 
	--Merken
 
	set letztesDatumMonat to heuteDatum
 
end if
 
 
-- Und jetzt ausführen
 
if anweisung ? "" then
 
	do shell script "" & anweisung with administrator privileges
 
end if
 
 
Habe in der Vorschau gesehen, dass das Ungleich-Zeichen (Alt-Null) als Fragezeichen dargestellt wird. Bitte vorher ändern.
 
 
Viel Spass. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		mcmonk •->
  
 
  Anmeldedatum: 18.01.2005 Beiträge: 6
 
  | 
		
			
				 Verfasst am: 18.01.2005 - 20:12    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hi,
 
 
ganz net, 
 
 
meine Frage ist gibts es vllt auch noch ne möglichkeit eine Stundenangabe einzubauen?
 
 
Oder Bspw. wenn ich um 5:50 etwas neues einbaut kommt es jede woche um 5:50? 
 
 
Bye | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		spirigwi •----->
  
  
  Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
  | 
		
			
				 Verfasst am: 26.02.2005 - 12:41    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				& "sh -c " & "/etc/monthly"  --und "; /etc/monthly"
 
  
 
 ich hab es noch mit Snows CodeFormatter etwas angepinselt und die UNGLEICHS ersetzt.
 
property letztesDatumTag : date "Samstag, 10. Dezember 1966 12:00:00 Uhr"
 
property letztesDatumWoche : date "Samstag, 10. Dezember 1966 12:00:00 Uhr"
 
property letztesDatumMonat : date "Samstag, 10. Dezember 1966 12:00:00 Uhr"
 
 
-- Starten --
 
set heuteDatum to (current date)
 
set anweisung to ""
 
 
-- Täglich
 
if (date string of heuteDatum) is not (date string of letztesDatumTag) then
 
   
 
   -- Der tägliche Job muß ausgeführt werden
 
   set anweisung to anweisung & "sh -c " & "/etc/daily"
 
   
 
   --Merken
 
   set letztesDatumTag to heuteDatum
 
   
 
end if
 
 
-- Wöchentlich
 
if heuteDatum > (letztesDatumWoche + 1 * weeks) then
 
   
 
   -- Wöchentlich-Job muß ausgeführt werden
 
   if anweisung = "" then
 
      set anweisung to anweisung & "sh -c " & "/etc/weekly"
 
   else
 
      set anweisung to anweisung & "; /etc/weekly"
 
   end if
 
   
 
   --Merken
 
   set letztesDatumWoche to heuteDatum
 
end if
 
 
-- Monatlich
 
if heuteDatum > (letztesDatumMonat + 4 * weeks) then
 
   
 
   -- Monats-Job muß ausgeführt werden
 
   if anweisung = "" then
 
      set anweisung to anweisung & "sh -c " & "/etc/monthly"  --und "; /etc/monthly"
 
   else
 
      set anweisung to anweisung & "; /etc/monthly"
 
   end if
 
   
 
   --Merken
 
   set letztesDatumMonat to heuteDatum
 
end if
 
 
-- Und jetzt ausführen
 
if anweisung is not "" then
 
 do shell script "" &  anweisung  with administrator privileges
 
end if 
 
 
 
--Gruss Willy _________________  Skript-Fan => ein  �  -Fan =>Scr¿¿-KongFuSius_Kurpfusius
  Zuletzt bearbeitet von spirigwi am 22.03.2005 - 08:31, insgesamt einmal bearbeitet | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		spirigwi •----->
  
  
  Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
  | 
		
			
				 Verfasst am: 19.03.2005 - 09:59    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Snow hat Folgendes geschrieben: | 	 		    
 
In dem besagten Snippet geht es darum, die sog. Cron-Jobs manuell zu starten. Ein UNIX-System ist eigentlich dazu konzipiert, ständig zu laufen. Nachts werden dann vom System Aufräumarbeiten vorgenommen (vollautomatisch). Da ein Desktop-Computer kaum ständig an ist (wie z.B. ein Server), können diese Aufräumarbeiten natürlich nicht ausgeführt werden, deshalb sollte man sie von Zeit zu Zeit manuell anstossen. Es gibt 3 verschiedene solcher Aufräum-Jobs. Täglich, wöchentlich und monatlich. Diese drei Jobs werden in dem Snippet gestartet. | 	  ...  
 
 
aha, in HILFE gibts was(für jemand der erstes Mal solche UNIX-Befehle mit shell aufgerufen sieht):
 
 
 	  | Zitat: | 	 		  Der Befehl "Do Shell Script" lässt Sie UNIX Befehle in einem AppleScript Skript verwenden. "Do Shell Script" verwendet "sh" als Standard-Shell. Die Standard-Shell für das Programm "Terminal" ist "tcsh".
 
   | 	   
 
ich glaub da sind zum Verständnis paar Grundbegriffe als Weiterführung von Snows Info. Mir jedenfalls hilfts, hoffe andern auch
 
 
Und jetzt wird mir schlagartig klar warum OSX so heisst: wegen UNIX
 
sorry aber im Moment heisst für mich OSX  immernoch:
 
 
OSNIXverstenn
 
...   _________________  Skript-Fan => ein  �  -Fan =>Scr¿¿-KongFuSius_Kurpfusius
  Zuletzt bearbeitet von spirigwi am 22.03.2005 - 08:33, insgesamt 2-mal bearbeitet | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		spirigwi •----->
  
  
  Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
  | 
		
			
				 Verfasst am: 21.03.2005 - 20:59    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				ich hab nur noch etwas nicht begriffen:
 
 
ihr könnt offenbar der UNIX Ebene eine Leistung abringen mit
 
 "sh -c " & "/etc/daily" und dann macht er irgend etwas täglich:
 
 
Was? können "wir" Apple Skripter auch etwas manipulieren an dieser Aufgabe?
 
gibt es an der OSX -Oberfläche irgendwelche Voreinstellungen die dann "daily" ablaufen?
 
 
jedenfalls ist dein SNIPPET ja auch nützlich ohne UNIX-Befehle indem man stattdessen irgend einen AS-handler anhängt der ZB monatlich ausgeführt werden soll und die Entscheidung darüber ob er soll oder nicht wird aus den property-Ueberschreibungen im Moment des Skript-Aufrufes  errechnet?
 
patent die Sache, ich probiere etwas mehr Durchblick _________________  Skript-Fan => ein  �  -Fan =>Scr¿¿-KongFuSius_Kurpfusius | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Snow Administrator
  
  
  Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
  | 
		
			
				 Verfasst am: 21.03.2005 - 21:17    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | spirigwi hat Folgendes geschrieben: | 	 		  ihr könnt offenbar der UNIX Ebene eine Leistung abringen mit
 
 "sh -c " & "/etc/daily" und dann macht er irgend etwas täglich:
 
 
Was? können "wir" Apple Skripter auch etwas manipulieren an dieser Aufgabe?
 
gibt es an der OSX -Oberfläche irgendwelche Voreinstellungen die dann "daily" ablaufen?
 
 | 	  
 
 
Da machst du wohl einen kleinen Denkfehler. Die Cron-Jobs laufen normalerweise automatisch (wiederkehrend) ab. Allerdings nur, wenn der Rechner auch zu dieser Zeit an ist. Da Desktop-Rechner aber eher selten 24/7 in Betrieb sein werden, fallen immer wieder die Cron-Jobs aus. Das obige Skript sorgt dafür, dass diese Jobs nachgeholt werden.
 
 
daily, weekly und monthly ist nur die Bezeichnung dieser speziellen Skripte. Die zeitliche Steuerung erfolgt durch den Eintrag dieser Skripte in die CronTab. Das ist praktisch eine To-Do-Liste für das System.
 
 
Wenn du etwas regelmäßig ausführen möchtest, starte das entsprechende Skript per iCal. Oder besorge dir ein Tool wie "Cronnix" - damit lassen sich weitere Cron-Jobs anlegen - also auch Skripte starten. _________________ Peter
 
-
 
Fischer-Bayern.de|Shadetreemicro.com
  Zuletzt bearbeitet von Snow am 21.03.2005 - 21:28, insgesamt einmal bearbeitet | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Peter B. •->
  
 
  Anmeldedatum: 05.05.2005 Beiträge: 10
 
  | 
		
			
				 Verfasst am: 06.05.2005 - 06:47    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hi!
 
Unter 10.4 wird der wöchentliche Cronjob beim Aufruf des Scripts nicht abgearbeitet (zumindest bei mir nicht   ). Hier scheint ein Fehler mit der Passwortübergabe vorzuliegen.
 
 
Gruß, Peter | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |