Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
Automatische Dateilöschung
Automatische Dateilöschung
iTüte
27.11.09
22:01
Hallo zusammen,
ich würde gerne jeden Tag automatisch Dateien die älter als 6 Wochen sind aus einem Ordner löschen und das noch ohne sie in den Papierkorb zu werfen. Also direktes löschen. Ich wäre für Hilfe überaus dankbar... Achso... System ist ein 10.5 kein Upgrade möglich.
Hilfreich?
0
Kommentare
pb_user
27.11.09
22:52
wie wäre es mit einem automator-script, warum du allerdings den papierkorb meiden willst, ist doch nur ein klickchen für ein wenig (selbst)kontrolle ...?
Hilfreich?
0
iTüte
28.11.09
10:12
das S
ystem muss autag laufen... Das ist das Problem...
Hilfreich?
0
Wowbagger
28.11.09
10:33
Du kannst Dir selbst was basteln mit Automator und iCal, ist nicht sehr elegant, aber später leicht anzupassen (z.B. anderer Zeitraum, andere Kriterien).
Für Automator brauchst Du folgende Abläufe (ich glaube, die sollte es auch unter Leopard geben)
1. "Angegebene Finder-Objekte abfragen" - Dort fügst Du den entsprechenden Ordner hinzu.
2. "Ordnerinhalt abfragen" - Gibt die enthaltenen Dateien an die nächste Aktion weiter.
3. "Finder-Objekte filtern" - Hier definierst Du Deine Löschkriterien
4. "Shell-Skript ausführen" - Ändere bei "Eingabe übergeben" die Einstellung auf "Als Argumente"
und ändere das Musterskript ab:
for f in "$@"
do
rm "$f"
done
"rm" kannst Du nach Bedarf auch mit "-rf" verwenden. Achtung! Wenn Du das Skript änderst, sei vorsichtig, dass Du nur die richtigen Dateien an das Shell-Skript übergibst, mit "rm" und besonders "rm -rf" kann man einigen Schaden anrichten, da eben direkt gelöscht wird.
Das Ganze speicherst Du als Programm, erstellst einen neuen Kalender in iCal und darin einen täglich wiederholten Termin. Bei "Erinnerung" wählst Du "Datei öffnen" und dann dein Programm.
Entfern dann noch den Haken beim Kalender, dann ist er ausgeblendet.
Wie gesagt nicht elegant, aber auch ohne fremde Hilfe zu ändern.
Hilfreich?
0
Wowbagger
28.11.09
10:35
So könnte das dann aussehen:
Hilfreich?
0
ts
28.11.09
11:40
Alternative zu Automator wäre cron mit einem cronjob zu benutzen, der dann ein sh-Skript aufruft.
Hilfreich?
0
ExMacRabbitPro
28.11.09
11:47
ts
Alternative zu Automator wäre cron mit einem cronjob zu benutzen, der dann ein sh-Skript aufruft.
wenn, dann launchd statt cron.
Hilfreich?
0
_mäuschen
28.11.09
11:48
Wenn schon eine Alternativ, dann mit
launchd
Hilfreich?
0
Marcel Bresink
28.11.09
12:03
Wenn man keine zusätzlichen Hilfsmittel nutzt, ist cron aber wesentlich einfacher als launchd zu bedienen. Und cron kann über jeden Job-Aufruf oder aufgetretene Fehler per E-Mail berichten, wenn man das will.
Hilfreich?
0
sierkb
28.11.09
12:08
ts
Alternative zu Automator wäre cron mit einem cronjob zu benutzen, der dann ein sh-Skript aufruft.
Da cron seit MacOSX 10.4 funktionell durch launchd
abgelöst worden ist bzw. seitdem unter MacOSX als "deprecated" (missbilligt) gilt, dann wohl eher launchd bzw. ein entsprechendes launchd-Skript, das dann meinetwegen benutzerspezifisch in ~/Library/LaunchAgents liegt...
Angelegt und konfiguriert werden kann so ein launchd-Skript z.B. prima mit dem Programm Lingon
, welches dann dieses kleine Shell-Skript regelmäßig entweder beim Login, in gewissen Abständen oder zu bestimmten Uhrzeiten aufruft.
Bei einem Shell-Einzeiler kann ggf. auch auf das Skript verzichtet werden und dieser Einzeiler dann direkt als String-Argument in das betreffende launchd-Skript eingebaut werden.
Das Skript selber hier jetzt mundfertig vorzukauen (irgendwie muss ja das Datei-Alter von älter als 6 Wochen noch eingearbeitet werden), dazu bin ich grad' zu faul...
Andere Alternative: das launchd-Skript wird nur alle 6 Wochen aufgerufen und macht dann halt einfach ein rm -r des betreffenden Ordners bzw. der betreffenden Dateien...
Hilfreich?
0
sierkb
28.11.09
12:12
Marcel Bresink
Wenn man keine zusätzlichen Hilfsmittel nutzt, ist cron aber wesentlich einfacher als launchd zu bedienen. Und cron kann über jeden Job-Aufruf oder aufgetretene Fehler per E-Mail berichten, wenn man das will.
Da cron aber seit MacOSX Tiger von Apple als "deprecated" gilt, wissen wir alle nicht, wie lange Apple den cron daemon überhaupt noch zur Verfügung stellen wird.
Ich meine, ich hätte mal unlängst zu Leopard-Zeiten einen entsprechenden Kommentar in einer cron-Konfigurationsdatei von MacOSX (Leopard) gelesen, dass man da bitte möglichst nicht reinschreiben solle bzw. auf launchd wechseln solle, weil Apple sich vorbehalte, cron irgendwann komplett zu entfernen (könnte dann ja auch evtl. mal ohne Vorwarnung mit einem zwischenzeitlichen System-Update passieren, oder?)...
Z.B. finde ich unter Snow Leopard keine /etc/crontab mehr vor. Ist, glaube ich, seit Leopard so; Tiger hatte sie wohl noch.
Hilfreich?
0
ts
28.11.09
12:30
Naja, zur Not könnte man z.B. auch fcron benutzen. Jedenfalls ist launchd momentan eine „Insellösung”.
Hilfreich?
0
sierkb
28.11.09
12:47
ts
Naja, zur Not könnte man z.B. auch fcron benutzen.
Wieso das? Wozu?
Vielleicht noch Ubuntus Upstart?
Jedenfalls ist launchd momentan eine „Insellösung”.
Wenn ich Apple und das Konzept von launchd bisher richtig verstanden habe, ist launchd alles andere als nur eine "Insellösung", sondern deutlich mehr und durchaus auch eine Richtungsvorgabe und Orientierung (was Konzept und Umsetzung angeht) für andere unixoide Systeme (Ubuntus Upstart z.B.)...
Wer unter MacOSX das Unix-System benutzt bzw. damit arbeiten will, der sollte sich meiner Meinung nach unbedingt mit launchd auseinandersetzen und sich damit anfreunden, statt es innerlich abzulehnen und stattdessen alte Zöpfe länger hoch zu halten, die nicht nur unter MacOSX langsam aber sicher ganz bewusst durch Neues ersetzt werden.
Hilfreich?
0
_mäuschen
28.11.09
13:31
…back from lunch…
als Einzeiler
find
folder
-Btime 42 -exec rm -r {} \;
Hilfreich?
0
_mäuschen
28.11.09
13:46
Marcel Bresink
Wenn man keine zusätzlichen Hilfsmittel nutzt, ist cron aber wesentlich einfacher als launchd zu bedienen. Und cron kann über jeden Job-Aufruf oder aufgetretene Fehler per E-Mail berichten, wenn man das will.
The launchd daemon is essentially a replacement for init, rc, the init.d and rc.d scripts, SystemStarter (Mac OS X), inetd and xinetd, atd, crond and watchdogd. Apple has stated that it intends to eliminate all of the aforementioned services in favour of launchd.
Hilfreich?
0
sierkb
28.11.09
13:50
_mäuschen:
Als Ergänzung für launchd:
Passendes launchd-Skript dazu (ein Vorschlag, mit Lingon grad' mal eben schnell erstellt):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.iTuete.rmFolder</string>
<key>ProgramArguments</key>
<array>
<string>find</string>
<string>~/MeinVerzeichnis</string>
<string>-Btime</string>
<string>42</string>
<string>-exec</string>
<string>rm</string>
<string>-r</string>
<string>{}</string>
<string>\;</string>
</array>
<key>QueueDirectories</key>
<array/>
<key>RunAtLoad</key>
<true/>
<key>WatchPaths</key>
<array/>
</dict>
</plist>
Wobei das launchd-Skript dann z.B. unter ~/Library/LaunchAgents/com.iTuete.rmFolder.plist liegt (Namen und Verzeichnsse bitte anpassen). Das Skript wird dann jedesmal beim Einloggen des Benutzers ausgeführt (RunAtLoad=true).
Bitte verbessern/ergänzen, wo Verbesserungs-/Ergänzungsbedarf besteht. Die vielen Strings des Skripts kann man sicher auch zusammenfassen, ich hab's erstmal so gelassen, wie es Lingon zusammenstellt (nach jedem Leerzeichen wird ein neuer String angefangen)
Hilfreich?
0
sierkb
28.11.09
14:00
_mäuschen:
Danke für den Einzeiler. Er lag mir bereits auf der Zunge, doch ein wenig für Dich wollte ich ja auch noch übrig lassen...
Ergänzug zu dem launchd-Skript:
Wahlweise meinetwegen auch so schreiben, dass es nicht beim Systemstart bzw. nach dem Login ausgeführt wird, sondern z.B. täglich um 12:00 mittags.
Dann wäre der betreffende Abschnitt:
<key>RunAtLoad</key>
<false/>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>12</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
Kann man sich in Lingon alles prima zusammenklicken, Ausgabe ist dann eine solche XML-Datei.
Habe das Skript jetzt nicht ausprobiert, ob's tatsächlich läuft. Ausprobieren.
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
PIN-Code erraten: Dauer
Erscheint das neue MacBook Air M4 früher als an...
iPad Pro M4 wird grün – Displayfehler bei immer...
Bilder geben Hinweis: Mac mini M4 mit austausch...
Parallels führt x86-Windows auf M-Macs aus – Te...
Tim Cooks Jahresgehalt – und die Vergütung der ...
Mac OS X: 25 Jahre Aqua, 25 Jahre Dock
Apple Silicon M4: Die versteckte Innovation der...