mirror of
https://github.com/kremalicious/dotfiles.git
synced 2024-11-24 02:52:06 +01:00
add backup script
This commit is contained in:
parent
8c4219bf49
commit
933029a548
15
bin/.backupignore
Normal file
15
bin/.backupignore
Normal file
@ -0,0 +1,15 @@
|
||||
.Spotlight-*/
|
||||
.Trashes
|
||||
/afs/*
|
||||
/automount/*
|
||||
/cores/*
|
||||
/dev/*
|
||||
/Network/*
|
||||
/private/tmp/*
|
||||
/private/var/run/*
|
||||
/private/var/spool/postfix/*
|
||||
/private/var/vm/*
|
||||
/Previous Systems.localized
|
||||
/tmp/*
|
||||
/Volumes/*
|
||||
*/.Trash
|
61
bin/backup.sh
Normal file
61
bin/backup.sh
Normal file
@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Disc backup script
|
||||
# Requires rsync 3
|
||||
|
||||
# Ask for the administrator password upfront
|
||||
sudo -v
|
||||
|
||||
# IMPORTANT: Make sure you update the `DST` variable to match the name of the
|
||||
# destination backup drive
|
||||
|
||||
DST="/Volumes/Macintosh HD/"
|
||||
SRC="/"
|
||||
EXCLUDE="$HOME/.dotfiles/bin/.backupignore"
|
||||
|
||||
PROG=$0
|
||||
|
||||
# --acls update the destination ACLs to be the same as the source ACLs
|
||||
# --archive turn on archive mode (recursive copy + retain attributes)
|
||||
# --delete delete any files that have been deleted locally
|
||||
# --delete-excluded delete any files (on DST) that are part of the list of excluded files
|
||||
# --exclude-from reference a list of files to exclude
|
||||
# --hard-links preserve hard-links
|
||||
# --one-file-system don't cross device boundaries (ignore mounted volumes)
|
||||
# --sparse handle sparse files efficiently
|
||||
# --verbose increase verbosity
|
||||
# --xattrs update the remote extended attributes to be the same as the local ones
|
||||
|
||||
if [ ! -r "$SRC" ]; then
|
||||
logger -t "$PROG" "Source $SRC not readable - Cannot start the sync process"
|
||||
exit;
|
||||
fi
|
||||
|
||||
if [ ! -w "$DST" ]; then
|
||||
logger -t "$PROG" "Destination $DST not writeable - Cannot start the sync process"
|
||||
exit;
|
||||
fi
|
||||
|
||||
logger -t "$PROG" "Start rsync"
|
||||
|
||||
sudo rsync --acls \
|
||||
--archive \
|
||||
--delete \
|
||||
--delete-excluded \
|
||||
--exclude-from="$EXCLUDE" \
|
||||
--hard-links \
|
||||
--one-file-system \
|
||||
--sparse \
|
||||
--verbose \
|
||||
--xattrs \
|
||||
"$SRC" "$DST"
|
||||
|
||||
logger -t "$PROG" "End rsync"
|
||||
|
||||
# Make the backup bootable
|
||||
sudo bless -folder "$DST"/System/Library/CoreServices
|
||||
|
||||
# Update the backup's cache
|
||||
# sudo update_dyld_shared_cache -force -root "$DST"
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user