automator: freien Speicher abfragen

D

drongo

Mitglied
Thread Starter
Dabei seit
12.12.2007
Beiträge
48
Reaktionspunkte
0
Hallo!

Ich würde gerne per Automator den Desktop freiräumen, wenn(!) der freie Speicher unter z.B. 5 GB rutscht. Dann sollen alle Dateien, bis auf einige bestimmte, auf die zweite Platte geschaufelt werden. Das Auswählen, Filtern und Schieben bekomme ich mit automator hin. Ich finde jedoch keine Möglichkeit vorher den freien Speicher abzufragen. Scheint mir ne simple Sache, gibt es aber wohl nicht, oder?
Ansonsten müsste ich über irgendwelche Skripte gehen, das scheint aber alles furchtbar kompliziert... :-/. Gerne auch per freier Software. Ich habe 23 Rechner, an denen das passieren soll, da möchte ich ungern auch nur 20 Euro pro Platz bezahlen, dafür ist der Zweck einfach viel zu gering. Hab leider nix gefunden.

Beste Grüße
Drongo
 
applescript ausführen, optionen "[x] Eingabe dieser Aktion ignorieren":
Code:
on run
   tell application "System Events" to set free to free space of startup disk
   return free
end run
 
Das sieht gut aus, vielen Dank! Die Variable free nimmt den korrekten Wert an. Und nun? Ich versuche etwas zu finden, um die Variable abzufragen, aber das scheint es im Automator nicht zu geben. Im AppleScript bestimmt. Aber gibt es einen Befehl, um per AppleScript die Automator-Aktion zu beenden? Also wenn free > 5 000 000 000, dann beende die Aktion, ansonsten weiterlaufen bis das Wegbewegen der Daten geschieht. Finde dazu nix bei Google.
 
Lies Dich doch bitte einmal ein, wie man im Automator ein script / ein shellscript einbindet. (das von Olivetti angeführte script lässt sich innerhalb des von Automator erzeugten scripts einbinden / aufrufen. Automator verwendet auch nicht anderes als Scriptsprache)
 
obiges script ist ja schon für automator.

wir sehen hier ja nicht, wie dein automator task aussieht bzw. wo du nicht weiterkommst.
 
Hallo,

mir ist nicht klar, wie du das ganze „automatisiert“ starten möchtest... der Automator bietet da die Möglichkeit, mit einem wiederkehrenden Kalendereintrag zu arbeiten, oder - leicht zweckentfremdet - mit einer Ordneraktion...
Das sind beides keine wirklich tollen Lösungen.
Eigentlich erledigt man so etwas mit
launchd
http://www.launchd.info/

- - -

Zurück zur eigentlichen Frage:

Ich sitze gerade nicht an einem Mac und kann meine folgenden Aussagen nicht überprüfen...

Wird der Automator Ablauf als Programm gespeichert, wäre der nötige Befehl (um bei dem Spript von Olivetti zu bleiben) :
Code:
on run
   tell application "System Events" to set free to free space of startup disk
If free > 5000000000 then tell me to quit
end run

Alternativ die folgende Variante, welche auch in einem gestarteten Arbeitsablauf funktionieren sollte:
Code:
If free > 5000000000 then error number -128

Gruß
 
Zuletzt bearbeitet:
Hallo,

das Einbinden des Skripts hat ja wie gesagt geklappt, die free-Variable wird angelegt. Nur das mit dem if-Befehl habe ich nicht hinbekommen. Hatte gelesen, es gäbe bei Skript nicht einfach einen if-Befehl. Na war Murks, gibts ja scheinbar. Die Abfrage ist super, nur das Aussteigen aus automator funktioniert nicht, weder per quit noch per error code -128. Der wird vermutlich einfach das Skript an der Stelle beenden und dann mit den weiteren automator-Aufgaben fortfahren. Siehe Screenshot. Wenn ich das ausführe, werden trotzdem meine Dateien bewegt, obwohl ich jetzt zu Testzwecken free > 5Mrd eingestellt habe (da ich momentan mehr als 5 GB frei habe).

Schöne Grüße
Drongo
 

Anhänge

  • automator1.png
    automator1.png
    35,4 KB · Aufrufe: 152
if free > 5000000000 then error number -128
 
nope, gleicher Effekt, nur das Skript wird unterbrochen und die restlichen automator Aktionen starten
 
Ja natürlich error number .... habe meinen Beitrag editiert....

Ein „Fehler“ (error) stoppt einen Arbeitsablauf eigentlich unweigerlich...hmm

Leider ist mein Mac weit, aber entferne mal deine Zeile:
if […] then error number -128
und lass aber diese stehen:
if […] then tell me to quit

Sichere den Arbeitsablauf und starte ihn.
Wenn die Bedingung erfüllt wird, sollte der Automator beendet werden.
 
bei mir läuft's wie gedacht mit error number -128.

ein weiterer test wäre
Code:
on run
  tell application "System Events" to set free to free space of startup disk
  if free > 5000000000 then display dialog free
end run
so wird dir ein dialog angezeigt. bei ok wird fortgefahren, bei abbrechen gestoppt.
---
"tell me to quit" würde ich nur für programme nehmen, nicht für workflows, weil automator ja ständig modifiziert, blabla....
 
mää, er hat nicht richtig geschaut und "return free" dringelassen.
 
Ach return free muss raus?! Sorry, nicht gewusst. Ja prächtig, jetzt gehts!! Habs in ein Programm exportiert und in den Autostart gepackt. Wenn der letzte Nutzer jede Menge Datenmüll hinterlassen hat und es eng wird, wird der ganze Kram auf die zweite Platte bewegt. Leider auch überschrieben, wenn dort schon vorhanden, in separate Order pro Bewegung geht scheinbar nicht, aber egal, das passt schon.

Danke für die Hilfe!!
 
Danke für den Denkanstoß. Hatte das mit den Variablen noch nicht so kapiert. Jetzt geht auch das. Anbei mal meine finale Lösung.
 

Anhänge

  • Ergebnis.png
    Ergebnis.png
    35,8 KB · Aufrufe: 149
Zurück
Oben Unten