Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
roser •-->
![•--> •-->](/phpBB2/images/ranks/ranki1.gif)
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 |
|
![](templates/subSilver/images/spacer.gif) |
mcmonk •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
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 |
|
![](templates/subSilver/images/spacer.gif) |
spirigwi •----->
![•-----> •----->](/phpBB2/images/ranks/ranki4.gif)
![](images/avatars/7063387742ebdb604cce3.jpg)
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 |
|
![](templates/subSilver/images/spacer.gif) |
spirigwi •----->
![•-----> •----->](/phpBB2/images/ranks/ranki4.gif)
![](images/avatars/7063387742ebdb604cce3.jpg)
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
... ![Clowngesicht](images/smiles/083.gif) _________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Zuletzt bearbeitet von spirigwi am 22.03.2005 - 08:33, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
spirigwi •----->
![•-----> •----->](/phpBB2/images/ranks/ranki4.gif)
![](images/avatars/7063387742ebdb604cce3.jpg)
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 |
|
![](templates/subSilver/images/spacer.gif) |
Snow Administrator
![Administrator Administrator](/phpBB2/images/ranks/ranki5.gif)
![](images/avatars/14843438503e582f0f04e8a.gif)
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 |
|
![](templates/subSilver/images/spacer.gif) |
Peter B. •->
![•-> •->](/phpBB2/images/ranks/ranki0.gif)
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 |
|
![](templates/subSilver/images/spacer.gif) |
|