Last active 1 month ago

Commands used as shown in the video https://youtu.be/P-Pr7Dy6mP8 .

MrGeneration's Avatar MrGeneration revised this gist 1 month ago. Go to revision

4 files changed, 71 insertions

1_minio-console-commands.sh(file created)

@@ -0,0 +1,9 @@
1 + # Add new S3 user to Minio
2 + mc admin user add thasystems "s3-username" "s3-password"
3 +
4 + # Create and attach S3 policy to user in Minio
5 + mc admin policy create thasystems restic_sample_policy /tmp/restic_policy.json
6 + mc admin policy attach thasystems "restic_sample_policy" --user "s3-username"
7 +
8 + # Create new bucket 'resticsample' and ignore if it already exists
9 + mc mb --ignore-existing thasystems/resticsample

restic-backup-and-restore.sh(file created)

@@ -0,0 +1,20 @@
1 + # (environment) variables you need
2 + export AWS_ACCESS_KEY_ID="s3-username"
3 + export AWS_SECRET_ACCESS_KEY="s3-password"
4 + export RESTIC_PASSWORD="password"
5 +
6 + # initialize Minio Backup Repository
7 + restic -r s3:https://s3.domain.tld/resticsample init
8 +
9 + # Export PostGreSQL Dump of Zammad database
10 + sudo -u postgres pg_dump --dbname zammad --no-privileges --no-owner >> /tmp/zammad.psql
11 +
12 + # Backup complete Zammad directory with database dump
13 + restic -r s3:https://s3.domain.tld/resticsample migrate
14 + restic --no-scan --read-concurrency=25 --pack-size=128 --compression off -r s3:https://s3.domain.tld/resticsample backup --exclude "/opt/zammad/tmp/*" /opt/zammad/ /tmp/zammad.psql
15 +
16 + # Restore a PostGreSQL Dump from Repo
17 + restic -r s3:https://s3.domain.tld/resticsample dump latest '/tmp/zammad.psql' | sudo -u postgres psql zammad
18 +
19 + # Restore Zammad filesystem
20 + restic -r s3:https://s3.domain.tld/resticsample restore latest --include /opt/zammad/ --target /

restic-repository-management.sh(file created)

@@ -0,0 +1,32 @@
1 + # List all snapshots of the backup repository
2 + restic -r s3:https://s3.domain.tld/resticsample
3 +
4 + # List files in your backup
5 + restic -r s3:https://s3.domain.tld/resticsample ls --long latest /opt/zammad/config/
6 +
7 + # Mount your backup for easier search of files all over all snapshots
8 + # (technically works for restore too, but slower)
9 + restic -r s3:https://s3.domain.tld/resticsample mount /mnt/
10 +
11 + # Apply snapshot hold policy and remove snapshots older than defined rules
12 + restic -r s3:https://s3.domain.tld/resticsample forget --group-by '' --keep-hourly 1 --keep-daily 14 --prune
13 +
14 + # Read 25% of your backup to verify its integrity
15 + restic -r s3:https://s3.domain.tld/resticsample check --read-data-subset=25%
16 + # Do it on 100% of your backup
17 + restic -r s3:https://s3.domain.tld/resticsample check
18 +
19 + # Change the current password of a repository key
20 + restic -r s3:https://s3.domain.tld/resticsample key passwd
21 +
22 + # Add further keys to your repository
23 + restic -r s3:https://s3.domain.tld/resticsample key add
24 +
25 + # List all configured keys
26 + restic -r s3:https://s3.domain.tld/resticsample key list
27 +
28 + # Remove a certain key ID (from previous list)
29 + restic -r s3:https://s3.domain.tld/resticsample key remove <id>
30 +
31 + # Unlock a locked backup repository
32 + restic -r s3:https://s3.domain.tld/resticsample unlock

restic_policy.json(file created)

@@ -0,0 +1,10 @@
1 + {
2 + "Version": "2012-10-17",
3 + "Statement": [
4 + {
5 + "Effect": "Allow",
6 + "Action": ["s3:*"],
7 + "Resource": ["arn:aws:s3:::resticsample/*"]
8 + }
9 + ]
10 + }
Newer Older