Guten Tag,
ist es möglich, das Script “Tägliches Backup-Archiv” automatisiert laufen zu lassen?
Zum Beispiel nachts.
Ich habe das Forum durchsucht, bin jedoch nicht fündig geworden.
Hat jemand eine Idee?
Vielen Dank.
Peter Schulze
Eine intelligente Regel könnte eine angepasste Version des Skriptes z.B. täglich ausführen.
Neben dem von @cgrunenberg erwähnten Vorgehen gibt es auf macOS auch cron
, das immer läuft (anders als vielleicht DT) und dem man per Textdatei sagen kann, was es wann erledigen soll. Allerdings ist das etwas weniger benutzerfreundlich als DT und erfordert womöglich etwas Einlesen und Experimentieren.
Mit Scripten kenne ich mich nicht gut aus.
Wie könnte so eine Regel aussehen?
Vielen Dank.
Die Regel ist sehr einfach:
Und das Skript letztlich nur eine angepasste Version des bestehendes Skriptes, das alle Datenbanken archiviert. Je nach Anzahl und Größe ist DEVONthink damit eine Weile beschäftigt.
-- Scheduled daily backup archive for smart rules.
-- Created by Christian Grunenberg on Mon Jun 06 2022.
-- Copyright (c) 2009-2022. All rights reserved.
on performSmartRule(theRecords)
tell application id "DNtp"
set numDatabases to count of databases
if numDatabases > 0 then
set numBackups to 0
show progress indicator "Daily Backup Archive" steps numDatabases
try
set this_date to do shell script "date +%y-%m-%d"
repeat with this_database in the databases
set this_name to (name of this_database) as string
set this_path to path of this_database
set {od, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "/"}
set this_name to the last text item of this_path
set AppleScript's text item delimiters to ""
if this_name ends with ".dtBase2" then set this_name to (characters 1 thru -9 of this_name) as string
set this_archive to "~/Backup/" & this_name & " " & this_date & ".dtBase2.zip"
set AppleScript's text item delimiters to od
with timeout of 3600 seconds
step progress indicator "Database " & this_name
if (verify database this_database) is not 0 then
log message this_name info "Database is damaged."
else if not (optimize database this_database) then
log message this_name info "Optimization of failed."
else if not (compress database this_database to this_archive) then
log message this_name info "Backup failed."
else
set numBackups to numBackups + 1
end if
end timeout
end repeat
end try
hide progress indicator
if numBackups > 0 then log message "Daily Backup Archive" info "Backed up " & (numBackups as string) & " databases."
end if
end tell
end performSmartRule
Vielen Dank.
Zu welcher Uhrzeit läuft das Script bei “Täglich”?
Am liebsten wäre mir nachts.
Ist die Zeit einstellbar?
Die Uhrzeit lässt sich nicht einstellen. Garantiert ist nur, dass zwischen zwei Ausführungen mind. 24 Stunden liegen (je nachdem, wann DEVONthink gestartet ist und ob der Rechner schläft).
Okay. Vielen Dank an alle für die Hilfe.
Das wäre vielleicht eine Idee für einen zukünftigen Release, auch eine “Nachts” Einstellung zu haben, damit DT3 dann in dieser Zeit, wie bei vielen anderen Anwendungen auch, solche Arbeiten durchführen kann, ohne dabei zu stören.