init
Some checks failed
docker-build / build (push) Has been cancelled

This commit is contained in:
2025-08-27 15:22:41 +07:00
commit 936805a8c7
12 changed files with 228 additions and 0 deletions

15
scripts/backup.sh Normal file
View File

@@ -0,0 +1,15 @@
#!/bin/sh
BACKUP_FILE="sqlite_$(date "+%F-%H%M%S")"
sqlite3 ${DB_FILE} ".backup '/tmp/db.sqlite'"
tar -zcvf /tmp/${BACKUP_FILE}.tar.gz /tmp/db.sqlite
/scripts/minio_uploader.sh copy /tmp/${BACKUP_FILE}.tar.gz ${MINIO_PATH}
rm /tmp/${BACKUP_FILE}.tar.gz
if [ ! -z $DELETE_AFTER ] && [ $DELETE_AFTER -gt 0 ]
then
/scripts/deleteold.sh ${MINIO_PATH}
fi

24
scripts/deleteold.sh Normal file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
# Seconds since epoch for current time
DATE_NOW=$(date +%s)
/scripts/minio_uploader.sh list $MINIO_PATH | grep "sqlite_" | while read LINE
do
BACKUP_FILENAME=$(echo $LINE | awk '{ print $3 }')
BACKUP_DATE=$(echo $BACKUP_FILENAME | awk 'BEGIN { FS = "[_-]" } ; { printf "%s-%s-%s",$2,$3,$4 }')
if [[ $BACKUP_DATE =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]
then
BACKUP_DATE_SECS=$(date -d $BACKUP_DATE +%s)
DAYS_DIFF=$(( ($DATE_NOW - $BACKUP_DATE_SECS) / (60*60*24) ))
if [ "$DAYS_DIFF" -gt "$DELETE_AFTER" ]
then
echo "File $BACKUP_FILENAME is $DAYS_DIFF days old (greater than $DELETE_AFTER days). Deleting it."
/scripts/minio_uploader.sh delete /$BACKUP_FILENAME
fi
fi
done

6
scripts/entrypoint.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
echo "${CRONTAB} /scripts/backup.sh" > /etc/crontabs/root
/scripts/backup.sh
exec crond -f

18
scripts/minio_uploader.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
rclone config create myminio s3 provider Minio access_key_id $MINIO_ACCOUNT_ID secret_access_key $MINIO_APPLICATION_KEY endpoint $MINIO_ENDPOINT region $MINIO_LOCATION acl private
case $1 in
copy)
echo "copy from $2 to $3"
rclone copy --progress $2 $3
;;
list)
echo "list $2"
rclone ls $2
;;
delete)
echo "delete $2"
rclone delete $2
;;
esac