Backup-Skript

Status
Für weitere Antworten geschlossen.

mehldutt

Benutzer
Mitglied seit
16. Mai 2012
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Hallo Leute,
brauche dringend Hilfe von einem Experten:

Ohne nennenswerte Programmierkenntnisse habe ich mir ein Skript gebastelt, dass es mir erlaubt 1x wöchentlich ein Backup von meiner DiskStation1 auf meine alte Diskstation2 (beherrscht WOL nicht!) auszuführen.

Auf meiner DiskStation 2 wird beim Hochfahren ein Skript ausgeführt, das ein Skript auf der DiskStation1 ausführt, dass nach Abschluss eines Backups die DiskStation2 wieder abschaltet.

/usr/syno/etc/rc.d/S99zzbackup.sh auf DiskStation2:
Rich (BBCode):
#!/bin/sh
if test "$*" = 'start'; then
ssh -i /root/.ssh/backupssh root@DiskStation1 "/root/backup.sh"
fi

/root/backup.sh auf DiskStation1:
Rich (BBCode):
#!/bin/ash
clear
/usr/syno/bin/synonetbkp -a „Backup2“
/bin/sleep 30
while (ps | grep Backup2 | grep -v grep)
do
	/bin/sleep 5
done
ssh -i  /root/.ssh/backupssh root@DiskStation2 „/sbin/poweroff“
exit

Ich möchte nun die Skripts derart optimieren, dass der Backup-Prozess auf der DiskStation2 erkannt wird, sodass dieser sich selbst ausschalten kann und nicht mittels ssh von der DiskStation1 wie bisher.

Wäre toll, wenn mir jemand helfen könnte.
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
bitte nicht doppelt posten ... ich lösch den anderen Post

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
was spricht denn dagegen den Shutdown von DS2 im Script auf DS2 zu machen? Die wird ja wohl am besten wissen wenn sie mit dem Backup durch ist. Also so was in der Art auf DS2
Code:
#!/bin/sh 
rsync -a -e "ssh -i /root/.ssh/backupssh" root@DiskStation1:/VERZEICHNIS /volume1/backup/
poweroff
diese Script führst du dann wöchentlich im Cron aus
 

mehldutt

Benutzer
Mitglied seit
16. Mai 2012
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Klar, würde gehen.
Allerdings würde ich mir eine Meldung auf DiskStation1 wünschen, dass das Backup erfolgreich war.
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Schick Dir ne Mail, nimm den syslog, ruf über ssh ein Skript auf, ... gibt genügend Möglichkeiten für eine Benachrichtigung.
 

mehldutt

Benutzer
Mitglied seit
16. Mai 2012
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Habe synodsmnotify entdeckt.
Damit bekomme ich die Meldung auf dem DMS-Desktop, so wie ich es wollte.
So schaut's jetzt aus:

#!/bin/sh
rsync -a -e "ssh -i /root/.ssh/backupssh" root@DiskStation1:/volume1/public/testverz /volume1/backup/
ssh -i /root/.ssh/backupssh root@DiskStation1 synodsmnotify @users "rsync" "erfolgreich"
poweroff

Schön wäre noch eine Fehlermeldung wie z.B.:
if <<error>> then
ssh -i /root/.ssh/backupssh root@DiskStation1 synodsmnotify @users "rsync" "error"
else
ssh -i /root/.ssh/backupssh root@DiskStation1 synodsmnotify @users "rsync" "erfolgreich"
fi
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
$? hat das Ergebnis vom letzten Befehl. Die möglichen für rsync findest Du in der Doku.
 

mehldutt

Benutzer
Mitglied seit
16. Mai 2012
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Sorry Merthos, "$? hat das Ergebnis vom letzten Befehl." verstehe ich nicht.

In der Doku habe ich folgendes gefunden:
Exit Values
0 Success
1 Syntax or usage error
2 Protocol incompatibility
3 Errors selecting input/output files, dirs
4 Requested action not supported: an attempt was made to manipulate 64-bit files on a platform that cannot support them; or an option was specified that is supported by the client and not by the server.
5 Error starting client-server protocol
6 Daemon unable to append to log-file
10 Error in socket I/O
11 Error in file I/O
12 Error in rsync protocol data stream
13 Errors with program diagnostics
14 Error in IPC code
20 Received SIGUSR1 or SIGINT
21 Some error returned by CWwaitpid()
22 Error allocating core memory buffers
23 Partial transfer due to error
24 Partial transfer due to vanished source files
25 The --max-delete limit stopped deletions
30 Timeout in data send/receive
35 Timeout waiting for daemon connection
Ist das irgendwie hilfreich?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
$? ist der Exit Status des letzten Befehls, nach "rsync" also einer der o.g. Codes.
Code:
rsync ....
STATUS=$?
if [ $STATUS -eq 0 ] ; then
  echo "Ok"
else
  echo "Fehler"
fi
 

mehldutt

Benutzer
Mitglied seit
16. Mai 2012
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
So, Testläufe waren alle erfolgreich. Vielen Dank für die Hilfe.
Hier nochmals den vollständigen Code:
Code:
#!/bin/sh
rsync -a -e "ssh -i /root/.ssh/backupssh" root@DiskStation1:/volume1/public/testverz /volume1/backup/
STATUS=$?
if [ $STATUS -eq 0 ] ; then
  ssh -i /root/.ssh/backupssh root@DiskStation1 synodsmnotify @users "rsync" "erfolgreich"
else
  ssh -i /root/.ssh/backupssh root@DiskStation1 synodsmnotify @users "rsync" "Fehler"
fi
sleep 60
poweroff
Dieses Script wird jetzt einmal wöchentlich im Cron ausgeführt.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat