Ich hab' ne Lösung zusammengestellt, die die Tomedo Backup-Dateien täglich auf einen Server überträgt,
um nach einem Server-Totalverlust eine weitere Kopie zu haben. Vielleicht hat jemand noch gute Ideen zur Ergänzung.
Problem: Tägliches Tomedo-Backup auf externer Festplatte wird abends manchmal vergessen, Platte kann verloren gehen oder beschädigt werden. Zudem sind die Dateien auf der Platte nicht verschlüsselt, das gefällt mir nicht.
Idee: Tägliches Tomedo-Backup soll automatisiert in passwortgeschütztes Archiv gepackt und auf einen Server übertragen werden, der außerhalb der Praxis steht. Dropbox etc. möchte ich für Patientendaten nicht verwenden.
Voraussetzung: Via SSH erreichbarer, externer Server, Internetzugang mit akzeptablen (Upload-)Übertragungsraten. Script wird als cron-job jede Nacht gestartet
Lokale Ordnerstruktur:
BackupToTransfer (Ordner)
Inhalt:
- nachfolgendes AppleScript
- toProceed (Ordner - hier speichert der Tomedo Server das tägliche Backup)
- transferred (Ordner - übertragene Archive zur Kontrolle, können dann auch gelöscht werden)
Ablauf:
1. Dateien werden von Tomedo in den Ordner "toProceed" geschrieben, dann in ein Archiv verpackt, Name des Archivs ist das Datum, Original-Files löschen.
2. Archiv zum Server übertragen
3. Übertragenes Archiv in "transferred" verschieben
Noch ungelöst:
terminal auf events ueberwachen, um auf den erfolgreichen (oder nicht erfolgreichen) transfer zu reagieren.
Applescript Start
#----------------------------------
# daten remote server
set user to "ssh-user"
set domain to "backupserverdomain.de"
set passwort to "xyzPasswort"
set login to user & "@" & domain
#zipfile
set passWD to "ZIP-PASSWORT"
set stampText to do shell script "date '+%Y%m%d'"
set myPath to path to me
#----------------------------------
# absoluten pfad zur location
tell application "Finder"
set myFolder to ((container of myPath) as string) & "toProceed" as alias
set myArchivFolder to ((container of myPath) as string) & "transferred" as alias
end tell
# pfad-syntax anpassen
set myTargetFolderP to POSIX path of myFolder
set myArchivFolderP to POSIX path of myArchivFolder
# Ordner & files zippen (-r), verschluesseln (-P), originale entsorgen (-m)
do shell script "zip -P " & passWD & " -rm " & myTargetFolderP & stampText & ".zip " & myTargetFolderP & "/"
set transferCommand to "scp " & myTargetFolderP & stampText & ".zip " & login & ":tomedo/" & stampText & ".zip"
set archiveCommand to "mv " & myTargetFolderP & "*.zip " & myArchivFolderP
# zip -rm entfernt anscheinend keine files mit der endung .app, daher muss man den ordner noch zusätzlich manuell entleeren:
set deleteCommand to "rm -r " & myTargetFolderP & "* "
tell application "Terminal"
try
close (every window)
end try
delay 2
#Here's where all the action is
do script ""
activate
tell application "System Events" to tell process "Terminal"
delay 2
keystroke transferCommand
keystroke return
delay 15
keystroke passwort
keystroke return
# nach einer stunde dateien verschieben, wenn übertragung (hoffentlich) beendet. Keine schoene loesung,
# aber leider keine verlässliche moeglichkeit gefunden, das terminal auf events zu ueberwachen.
delay 3600
keystroke archiveCommand
keystroke return
keystroke deleteCommand
keystroke return
end tell
end tell
do shell script "killall Terminal"
#----------------------------------
Applescript Ende
um nach einem Server-Totalverlust eine weitere Kopie zu haben. Vielleicht hat jemand noch gute Ideen zur Ergänzung.
Problem: Tägliches Tomedo-Backup auf externer Festplatte wird abends manchmal vergessen, Platte kann verloren gehen oder beschädigt werden. Zudem sind die Dateien auf der Platte nicht verschlüsselt, das gefällt mir nicht.
Idee: Tägliches Tomedo-Backup soll automatisiert in passwortgeschütztes Archiv gepackt und auf einen Server übertragen werden, der außerhalb der Praxis steht. Dropbox etc. möchte ich für Patientendaten nicht verwenden.
Voraussetzung: Via SSH erreichbarer, externer Server, Internetzugang mit akzeptablen (Upload-)Übertragungsraten. Script wird als cron-job jede Nacht gestartet
Lokale Ordnerstruktur:
BackupToTransfer (Ordner)
Inhalt:
- nachfolgendes AppleScript
- toProceed (Ordner - hier speichert der Tomedo Server das tägliche Backup)
- transferred (Ordner - übertragene Archive zur Kontrolle, können dann auch gelöscht werden)
Ablauf:
1. Dateien werden von Tomedo in den Ordner "toProceed" geschrieben, dann in ein Archiv verpackt, Name des Archivs ist das Datum, Original-Files löschen.
2. Archiv zum Server übertragen
3. Übertragenes Archiv in "transferred" verschieben
Noch ungelöst:
terminal auf events ueberwachen, um auf den erfolgreichen (oder nicht erfolgreichen) transfer zu reagieren.
Applescript Start
#----------------------------------
# daten remote server
set user to "ssh-user"
set domain to "backupserverdomain.de"
set passwort to "xyzPasswort"
set login to user & "@" & domain
#zipfile
set passWD to "ZIP-PASSWORT"
set stampText to do shell script "date '+%Y%m%d'"
set myPath to path to me
#----------------------------------
# absoluten pfad zur location
tell application "Finder"
set myFolder to ((container of myPath) as string) & "toProceed" as alias
set myArchivFolder to ((container of myPath) as string) & "transferred" as alias
end tell
# pfad-syntax anpassen
set myTargetFolderP to POSIX path of myFolder
set myArchivFolderP to POSIX path of myArchivFolder
# Ordner & files zippen (-r), verschluesseln (-P), originale entsorgen (-m)
do shell script "zip -P " & passWD & " -rm " & myTargetFolderP & stampText & ".zip " & myTargetFolderP & "/"
set transferCommand to "scp " & myTargetFolderP & stampText & ".zip " & login & ":tomedo/" & stampText & ".zip"
set archiveCommand to "mv " & myTargetFolderP & "*.zip " & myArchivFolderP
# zip -rm entfernt anscheinend keine files mit der endung .app, daher muss man den ordner noch zusätzlich manuell entleeren:
set deleteCommand to "rm -r " & myTargetFolderP & "* "
tell application "Terminal"
try
close (every window)
end try
delay 2
#Here's where all the action is
do script ""
activate
tell application "System Events" to tell process "Terminal"
delay 2
keystroke transferCommand
keystroke return
delay 15
keystroke passwort
keystroke return
# nach einer stunde dateien verschieben, wenn übertragung (hoffentlich) beendet. Keine schoene loesung,
# aber leider keine verlässliche moeglichkeit gefunden, das terminal auf events zu ueberwachen.
delay 3600
keystroke archiveCommand
keystroke return
keystroke deleteCommand
keystroke return
end tell
end tell
do shell script "killall Terminal"
#----------------------------------
Applescript Ende