Script "Tägliches Backup-Archiv" automatisiert laufen zu lassen

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.

1 Like

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
2 Likes

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.

1 Like