7 Commits
1.01 ... master

Author SHA1 Message Date
Olli Graf
0541c5dc52 - 2025-09-19 12:52:32 +02:00
Olli Graf
21e3ee8d74 sha256sum liest von stdout. 2024-11-09 09:57:09 +01:00
Olli Graf
d1d4d01eb6 status=progress bei dd gesetzt. 2024-11-08 09:35:19 +01:00
Olli Graf
09e4e1c8fe Blocksize wieder auf 8M erhöht. 2024-11-04 08:32:59 +01:00
Olli Graf
42d386c42d sha256 Datei wird am Ende wieder gelöscht.
prgerepo.sh löscht alles bis auf die letzten drei Backups.
2024-11-04 07:17:51 +01:00
Olli Graf
ae357b49bb Versionsnummer 2024-11-03 14:38:48 +01:00
Olli Graf
bc029140fe Repo Dir wird automatisch angelegt, falls nicht existent. 2024-11-03 14:37:41 +01:00
4 changed files with 33 additions and 34 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
backup.img

View File

@@ -2,8 +2,9 @@
BACKUP_REPO="/tank/Backup-Repo" BACKUP_REPO="/tank/Backup-Repo"
TEMP_DIR="${HOME}/backup" TEMP_DIR="${HOME}/backup"
VERSION="1.01" VERSION="2.06"
CMD_COMPRESS='pbzip2' #CMD_COMPRESS='pbzip2'
CMD_COMPRESS='zstd -T0 -5'
verbose=false verbose=false
testmode=false testmode=false
bzip2=false bzip2=false
@@ -37,32 +38,27 @@ tdate=$(date '+%y-%m-%d')
function start_backup { function start_backup {
echo "starting Backup" echo "starting Backup"
sudo dd if=${DEVICE} bs=8M|pv| dd of=${FILE} bs=8M sudo dd if=${DEVICE} status=progress bs=8M | tee ${FILE} | sha256sum > ${TEMP_DIR}/${HOSTNAME}.sha256
sync
echo "verifying..." echo "validating the image..."
echo "checksum ${DEVICE}" if sha256sum --status -c ${TEMP_DIR}/${HOSTNAME}.sha256 <${FILE}; then
sha512src=$(sudo sha512sum ${DEVICE}) echo " Image sucessfully validated"
sha512src=$(isolate_checksum "${sha512src}")
echo "checksum ${FILE}"
sha512dest=$(sha512sum ${FILE})
sha512dest=$(isolate_checksum "${sha512dest}")
echo "sha512src= ${sha512src}"
echo "sha512dest= ${sha512dest}"
if [ "${sha512src}" = "${sha512dest}" ]; then
echo "compressing image with ${CMD_COMPRESS}"
${CMD_COMPRESS} ${FILE}
echo "moving compressed image to repo"
FILE="${FILE}.bz2"
mv ${FILE} "${BACKUP_REPO}/${HOSTNAME}"
exit 0
else else
echo "checksum verify failed, exiting" echo " failed to validate image."
exit 1 exit 2
fi fi
echo "compressing image with ${CMD_COMPRESS}"
${CMD_COMPRESS} ${FILE}
REPO_DIR="${BACKUP_REPO}/${HOSTNAME}"
echo "moving compressed image to repo"
if [ ! -d "${REPO_DIR}" ]; then mkdir "${REPO_DIR}"; fi
FILE="${FILE}.zst"
mv ${FILE} "${BACKUP_REPO}/${HOSTNAME}"
} }
numshift=0 numshift=0
@@ -120,3 +116,6 @@ echo "FILE=${FILE}"
echo "SD-Card Backup ${VERSION}" echo "SD-Card Backup ${VERSION}"
start_backup start_backup
echo "cleaning up..."
rm -v "${TEMP_DIR}/${HOSTNAME}.sha256"
exit 0

5
formatdate.sh Executable file
View File

@@ -0,0 +1,5 @@
#! /usr/bin/bash
tdate=$(date '+%y-%m-%d')
echo ${tdate}

View File

@@ -1,14 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Finde alle Dateien im Verzeichnis, sortiere sie nach Änderungszeit, und überspringe die neuesten drei
files_to_remove=$(find . -maxdepth 1 -type f|cut -c3-|xargs ls -t|tail -3) ls -t | tail -n +4 | while read -r file; do
echo "eldest files ${files_toremove}" # Lösche jede Datei, die älter als die drei neuesten ist
for backupfile in ${files_to_remove}; do rm -v "$file"
echo "deleting backup ${backupfile}" done
rm -f "${backupfile}"
done