| 1 | #!/usr/bin/env -S bash -eu |
| 2 | |
| 3 | DB_PATH="/cephfs/opengist/data/opengist.db" |
| 4 | RCLONE_REMOTE="s4:backup-bucket-name/opengist" |
| 5 | BACKUP_DB_PREFIX="opengist_db_" |
| 6 | BACKUP_DB_SUFFIX=".sqlite" |
| 7 | BACKUP_DB_FILENAME="$BACKUP_DB_PREFIX$(date +%Y%m%d_%H%M%S)$BACKUP_DB_SUFFIX" |
| 8 | DATA_PATH="/cephfs/opengist/data" |
| 9 | BACKUP_DATA_PREFIX="opengist_data_" |
| 10 | BACKUP_DATA_SUFFIX=".tar.gz" |
| 11 | BACKUP_DATA_FILENAME="$BACKUP_DATA_PREFIX$(date +%Y%m%d_%H%M%S)$BACKUP_DATA_SUFFIX" |
| 12 | BACKUP_PATH="/cephfs/opengist/backup/" |
| 13 | DAYS_TO_KEEP_LOCAL=7 |
| 14 | |
| 15 | mkdir -p "$BACKUP_PATH" |
| 16 | |
| 17 | sqlite3 "$DB_PATH" ".backup \"$BACKUP_PATH/$BACKUP_DB_FILENAME\"" |
| 18 | |
| 19 | tar -C $(dirname "$DATA_PATH") -cf "$BACKUP_PATH/$BACKUP_DATA_FILENAME" --exclude='./opengist.db' data |
| 20 | |
| 21 | rclone copyto "$BACKUP_PATH/$BACKUP_DB_FILENAME" "$RCLONE_REMOTE/$BACKUP_DB_PREFIX$BACKUP_DB_SUFFIX" |
| 22 | rclone copyto "$BACKUP_PATH/$BACKUP_DATA_FILENAME" "$RCLONE_REMOTE/$BACKUP_DATA_PREFIX$BACKUP_DATA_SUFFIX" |
| 23 | |
| 24 | find "$BACKUP_PATH" -name "${BACKUP_DB_PREFIX}*${BACKUP_DB_SUFFIX}" -type f -mtime +$DAYS_TO_KEEP_LOCAL -delete |
| 25 | find "$BACKUP_PATH" -name "${BACKUP_DATA_PREFIX}*${BACKUP_DATA_SUFFIX}" -type f -mtime +$DAYS_TO_KEEP_LOCAL -delete |
| 26 | |
| 27 | echo "Backup completed on $(date)" |
| 28 |
john / Generic backup script
Last active 3 months ago
Backs up an sqlite database and application data and syncs it to a remote with rclone.
Revision 98c5f0b3b9b1ace95893d02481379228a44feaea