Compare commits
2 Commits
b55882ecde
...
daa014c4e8
Author | SHA1 | Date | |
---|---|---|---|
daa014c4e8 | |||
f032025956 |
26
2022-external-backup/Makefile
Normal file
26
2022-external-backup/Makefile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
TARGET := ./berlin.sneak.fs.NNNY-cyberdyne-backup-01
|
||||||
|
|
||||||
|
default: backup
|
||||||
|
|
||||||
|
backup: do_file_backup write_checksum
|
||||||
|
|
||||||
|
write_checksum:
|
||||||
|
cd $(TARGET)/fs && find . -type f -print0 | xargs -0 sha1sum > ../.SHASUMS.tmp
|
||||||
|
mv ./.SHASUMS.tmp ./$(TARGET)/SHASUMS.txt
|
||||||
|
|
||||||
|
#--exclude=/tmp \
|
||||||
|
|
||||||
|
do_file_backup:
|
||||||
|
rsync -avP \
|
||||||
|
--exclude=/.cache \
|
||||||
|
--exclude=/.nvm \
|
||||||
|
--exclude=/.Trash \
|
||||||
|
--exclude=/Library/Caches \
|
||||||
|
--exclude=/Library/Mail \
|
||||||
|
--exclude=/Library/Developer \
|
||||||
|
--exclude=.DS_Store \
|
||||||
|
--delete-before \
|
||||||
|
--delete-excluded \
|
||||||
|
$(HOME)/ $(TARGET)/fs/
|
||||||
|
echo '# $(shell date -u)' > $(TARGET)/lastbackup.txt
|
||||||
|
date -u '+%s' >> $(TARGET)/lastbackup.txt
|
@ -22,7 +22,7 @@ LOGDIR="$HOME/Documents/_SYSADMIN/$YYYY-$MM/$YYYYMMDD"
|
|||||||
if [[ ! -d "$LOGDIR" ]]; then
|
if [[ ! -d "$LOGDIR" ]]; then
|
||||||
mkdir -p "$LOGDIR"
|
mkdir -p "$LOGDIR"
|
||||||
fi
|
fi
|
||||||
#exec > >(tee -a $LOGDIR/$YYYYMMDD.$(date -u +%s).tocloud-backup.log) 2>&1
|
exec > >(tee -a $LOGDIR/$YYYYMMDD.$(date -u +%s).tocloud-backup.log) 2>&1
|
||||||
|
|
||||||
function on_exit {
|
function on_exit {
|
||||||
rm -rf "$TD"
|
rm -rf "$TD"
|
||||||
@ -120,10 +120,10 @@ function do_backup {
|
|||||||
rclone sync \
|
rclone sync \
|
||||||
--retries 99999 \
|
--retries 99999 \
|
||||||
--progress \
|
--progress \
|
||||||
--progress-terminal-title \
|
|
||||||
--stats-unit bits \
|
--stats-unit bits \
|
||||||
|
--stats-one-line -v \
|
||||||
"$TD/$BACKUPNAME" \
|
"$TD/$BACKUPNAME" \
|
||||||
fsn1-storagebox-10T:"$BACKUPNAME"/
|
fsn1-storagebox-10T:"$BACKUPNAME"/ 2>&1
|
||||||
# belt and suspenders
|
# belt and suspenders
|
||||||
echo "### Verifying uploaded data checksums..."
|
echo "### Verifying uploaded data checksums..."
|
||||||
rsync -acP "$TD/$BACKUPNAME/" fsn1-storagebox-10T:"$BACKUPNAME"/
|
rsync -acP "$TD/$BACKUPNAME/" fsn1-storagebox-10T:"$BACKUPNAME"/
|
||||||
|
22
import-video/import.sh
Executable file
22
import-video/import.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DEST="/Volumes/video"
|
||||||
|
D="root@las1"
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
if [[ ! -d "$DEST/2022" ]]; then
|
||||||
|
echo "wrong box" > /dev/stderr
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
SRC="$1"
|
||||||
|
cd "$SRC"
|
||||||
|
for FILE in * ; do
|
||||||
|
YYYY="$(echo "$FILE" | colrm 5)"
|
||||||
|
MM="$(echo "$FILE" | colrm 1 4 | colrm 3)"
|
||||||
|
DD="$(echo "$FILE" | colrm 1 6 | colrm 3)"
|
||||||
|
echo "ssh $D -- mkdir -p /storage/video/$YYYY/$YYYY-$MM/$YYYY-$MM-$DD"
|
||||||
|
echo "rsync -acvvvP \"$SRC/$FILE\" $D:/storage/video/$YYYY/$YYYY-$MM/$YYYY-$MM-$DD/"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main $*
|
@ -42,6 +42,7 @@ RE+=" --exclude=.cache/"
|
|||||||
RE+=" --exclude=/.cpan/build/"
|
RE+=" --exclude=/.cpan/build/"
|
||||||
RE+=" --exclude=/.cpan/sources/"
|
RE+=" --exclude=/.cpan/sources/"
|
||||||
RE+=" --exclude=/.docker/"
|
RE+=" --exclude=/.docker/"
|
||||||
|
RE+=" --exclude=/.local/share/containers/podman/machine/"
|
||||||
RE+=" --exclude=/.dropbox/"
|
RE+=" --exclude=/.dropbox/"
|
||||||
RE+=" --exclude=/.minikube/cache/"
|
RE+=" --exclude=/.minikube/cache/"
|
||||||
RE+=" --exclude=/Applications/Fortnite/"
|
RE+=" --exclude=/Applications/Fortnite/"
|
||||||
@ -59,6 +60,7 @@ RE+=" --exclude=/Library/Application?Support/SecondLife/cache/"
|
|||||||
RE+=" --exclude=/Library/Application?Support/Steam/SteamApps/"
|
RE+=" --exclude=/Library/Application?Support/Steam/SteamApps/"
|
||||||
RE+=" --exclude=/Library/Application?Support/SyncServices/"
|
RE+=" --exclude=/Library/Application?Support/SyncServices/"
|
||||||
RE+=" --exclude=/Library/Application?Support/protonmail/bridge/cache"
|
RE+=" --exclude=/Library/Application?Support/protonmail/bridge/cache"
|
||||||
|
RE+=' --exclude=/Library/Application?Support/Syncthing/index-*'
|
||||||
RE+=" --exclude=/Library/Metadata"
|
RE+=" --exclude=/Library/Metadata"
|
||||||
RE+=" --exclude=/Library/Caches/"
|
RE+=" --exclude=/Library/Caches/"
|
||||||
RE+=" --exclude=/Library/Containers/com.docker.docker/"
|
RE+=" --exclude=/Library/Containers/com.docker.docker/"
|
||||||
@ -79,6 +81,8 @@ RE+=" --exclude=/Library/Syncthing/folders/" # syncthing is its own backup
|
|||||||
RE+=" --exclude=/Library/VoiceTrigger/SAT"
|
RE+=" --exclude=/Library/VoiceTrigger/SAT"
|
||||||
RE+=" --exclude=/Library/iTunes/iPad?Software?Updates/"
|
RE+=" --exclude=/Library/iTunes/iPad?Software?Updates/"
|
||||||
RE+=" --exclude=/Library/iTunes/iPhone?Software?Updates/"
|
RE+=" --exclude=/Library/iTunes/iPhone?Software?Updates/"
|
||||||
|
RE+=" --exclude=/Movies/CacheClip/"
|
||||||
|
RE+=" --exclude=/Movies/ProxyMedia/"
|
||||||
RE+=" --exclude=/Music/iTunes/Album?Artwork/"
|
RE+=" --exclude=/Music/iTunes/Album?Artwork/"
|
||||||
RE+=" --exclude=/Pictures/iPod?Photo?Cache/"
|
RE+=" --exclude=/Pictures/iPod?Photo?Cache/"
|
||||||
RE+=" --exclude=/Receivd/"
|
RE+=" --exclude=/Receivd/"
|
||||||
|
45
photoimport/photoimport
Executable file
45
photoimport/photoimport
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
set -x
|
||||||
|
set -e
|
||||||
|
set -o nullglob
|
||||||
|
|
||||||
|
YYYYMMDD="$(date "+%Y-%m-%d")"
|
||||||
|
|
||||||
|
|
||||||
|
function downloadPhotos() {
|
||||||
|
SRC=(/Volumes/*/DCIM)
|
||||||
|
if [[ ! -d "$SRC" ]]; then
|
||||||
|
echo "no photos" > /dev/stderr
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
DST="$HOME/Library/Syncthing/folders/LightroomMasters-CurrentYear/toimport"
|
||||||
|
du -sh "$SRC"
|
||||||
|
rsync -ah --no-inc-recursive --info=progress2 --remove-source-files "$SRC"/ $DST/$YYYYMMDD/
|
||||||
|
cd "$DST/$YYYYMMDD"
|
||||||
|
mv */* .
|
||||||
|
f2 -r '../{{mtime.YYYY}}/{{mtime.YYYY}}-{{mtime.MM}}/{{mtime.YYYY}}-{{mtime.MM}}-{{mtime.DD}}/{{mtime.YYYY}}-{{mtime.MM}}-{{mtime.DD}}.{{x.model}}.{{f}}.{{hash.sha256}}{{ext}}' -x --verbose
|
||||||
|
}
|
||||||
|
|
||||||
|
function downloadVideos() {
|
||||||
|
SRC=(/Volumes/*/PRIVATE/M4ROOT/CLIP)
|
||||||
|
if [[ ! -d "$SRC" ]]; then
|
||||||
|
echo "no videos" > /dev/stderr
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
DST="$HOME/_TODO/$YYYYMMDD-video-import/"
|
||||||
|
mkdir -p "$DST"
|
||||||
|
du -sh "$SRC"
|
||||||
|
rsync -ah --no-inc-recursive --info=progress2 --remove-source-files "$SRC"/ $DST/
|
||||||
|
cd "$DST"
|
||||||
|
#mv */* .
|
||||||
|
f2 -r '{{mtime.YYYY}}/{{mtime.YYYY}}-{{mtime.MM}}/{{mtime.YYYY}}-{{mtime.MM}}-{{mtime.DD}}/{{mtime.YYYY}}-{{mtime.MM}}-{{mtime.DD}}.{{f}}.{{hash.sha256}}{{ext}}' -x --verbose
|
||||||
|
}
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
# FIXME this doesn't work if there are no photos on the card but the
|
||||||
|
# DCIM dir exists
|
||||||
|
downloadPhotos
|
||||||
|
downloadVideos
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
Loading…
Reference in New Issue
Block a user