Hat Ihr NAS einen Rsync-Dienst eingerichtet? Einige unterstützen es (zB ReadyNAS). Wenn ja, können Sie so etwas tun:
#!/bin/sh DEST=xx.xx.xx.xx::backup/swilliams/ RSYNC_OPTS='-vaC --exclude ".DS_Store"' /usr/bin/rsync $RSYNC_OPTS --exclude "build/" --exclude "dist/" --exclude "*.pyc" ~/code $DEST /usr/bin/rsync $RSYNC_OPTS ~/Music $DEST /usr/bin/rsync $RSYNC_OPTS ~/Pictures $DEST /usr/bin/rsync $RSYNC_OPTS --exclude "Virtual Machines*" ~/Documents $DEST
Sie müssen DEST in die IP-Adresse Ihres NAS umwandeln und die entsprechenden Pfade und Dinge ändern.
Wenn Sie dies speichern, sagen Sie ~/bin/backup.sh
(und stellen Sie sicher, dass Sie es tun chmod a+x ~/bin/backup.sh
), können Sie es fast mit cron ausführen. Führen crontab -e
Sie diese Zeile aus und fügen Sie sie hinzu:
0 0 * * * $HOME/bin/backup.sh > $HOME/logs/backup.log 2>&1
( 0 0 * * *
bedeutet: jeden Tag um Mitternacht ausführen, jeden Monat. Erste Spalte ist Minuten, also 3 Uhr morgens 0 3 * * *
. Dadurch werden Protokolle geschrieben. Stellen Sie ~/logs
daher sicher, dass das Verzeichnis vorhanden ist, oder legen Sie sie an einem anderen Ort ab.)
Wenn Ihr NAS rsync nicht als Dienst unterstützt , sollte es meiner Meinung nach funktionieren, wenn Sie den Start folgendermaßen ändern:
#!/bin/sh mount_smbfs //user:password@xx.xx.xx.xx/backup /Volumes/backup DEST=/Volumes/backup
und am Ende:
umount /Volumes/backup
(Wenn Ihre Freigabe geöffnet ist, können Sie den Benutzer und das Kennwort weglassen.)
Wenn Sie Zeitstempel-Sicherungen wünschen, können Sie mit dem Befehl date experimentieren. z.B
DATE=`date +%Y%m%d`
Greifen Sie dann in Ihrem Skript auf $ DATE zu.
Wenn Ihnen hier etwas nicht klar ist, fragen Sie einfach.