48 lines
1.1 KiB
Markdown
48 lines
1.1 KiB
Markdown
# Backup Solution
|
|
This is currently WIP btw.
|
|
|
|
* Install restic > 1.14
|
|
* Create new repository (where backups are stored)
|
|
|
|
Create a new ssh keypair, in this example I'm naming the keyfile "keyfile"
|
|
```bash
|
|
ssh-keygen -f ~/.ssh/keyfile
|
|
```
|
|
|
|
Share the key it with the remote host
|
|
|
|
```bash
|
|
ssh-copy-id -i ~/.ssh/keyfile.pub admin@192.168.1.20
|
|
```
|
|
|
|
Create a `~/.ssh/config` file and name it. In this case we will name it "remote"
|
|
|
|
```toml
|
|
# ~/.ssh/config
|
|
Host remote
|
|
Hostname 192.168.1.20 # example
|
|
User admin
|
|
IdentityFile ~/.ssh/keyfile
|
|
```
|
|
|
|
```bash
|
|
# This could also be a local folder (/to/whereever/) but that's dumb.
|
|
export RESTIC_REPOSITORY="sftp:remote:/srv/repo"
|
|
restic init
|
|
# It will ask you for a password, ofc make this good and don't forget it.
|
|
```
|
|
|
|
Backup some files
|
|
|
|
```bash
|
|
# Set $TMPDIR to somewhere on a tmpfs filesystem to reduce drive wear
|
|
# Optionally add the `--tag foo` flag to tag backup snapshots
|
|
restic backup /ImportantDocuments --no-scan --compression max
|
|
```
|
|
* Restore from a snapshot:
|
|
```bash
|
|
restic snapshots
|
|
# Copy the desired snapshot id (short or long)
|
|
restic restore <id> --target <target folder>
|
|
```
|