From cc574d53588f1e7d40a11615252018463e49c886 Mon Sep 17 00:00:00 2001 From: Malin Freeborn Date: Fri, 7 Mar 2025 12:12:17 +0100 Subject: [PATCH] backup syntax --- data/backups/archives.md | 27 +++++++++++++-------------- data/backups/unison.md | 8 ++++---- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/data/backups/archives.md b/data/backups/archives.md index 2de1687..96c3c57 100644 --- a/data/backups/archives.md +++ b/data/backups/archives.md @@ -8,22 +8,21 @@ tags: [ "tar", "backups", ".tgz", "tar.gz" ] Combine many files and directories into a single t-archive file. -```bash +```sh tar cf "$ARCHIVE".tar $DIR ``` You can remember this with the mnemonic '*C*reate *F*ile'. -Unfortunately, this stores the full file path, so making a tar archive of `/etc/nginx/` will store `etc/nginx` (without the leading `/`. - +Unfortunately, this stores the full file path, so making a tar archive of `/etc/nginx/` will store `etc/nginx` (without the leading `/`). It's often better to tell tar which path to start from using the `-C` flag. -```bash +```sh tar cf "$ARCHIVE".tar -C /etc/ nginx ``` Check the contents of your archive with: -```bash +```sh tar tf "$ARCHIVE".tar ``` @@ -31,7 +30,7 @@ If you want to store 'everything in a directory', then using `*` will not work, Instead, you can store the target in a variable: -```bash +```sh files=$(ls /etc/nginx) tar cf "$ARCHIVE".tar -C /etc/nginx/ $file ``` @@ -40,7 +39,9 @@ tar cf "$ARCHIVE".tar -C /etc/nginx/ $file Extract the tar archive with -> tar xf "$ARCHIVE".tar +```sh +tar xf "$ARCHIVE".tar +``` You can remember this with the mnemonic 'e*X*tract *F*ile'. @@ -48,7 +49,7 @@ You can remember this with the mnemonic 'e*X*tract *F*ile'. Create a zip-compressed archive with the `z` flag. -```bash +```sh tar czf "$ARCHIVE".tgz -C /etc/nginx/ $file ``` @@ -60,18 +61,16 @@ You can use any file ending you want, but sane people like to use '.tgz' or '.ta Make archive: -```bash -PASSWORD=my_password -``` -```bash -7za a -tzip -p$PASSWORD -mem=AES256 $ARCHIVE.zip $FILE_1 $FILE_2 +```sh +7za a -tzip -p "$PASSWORD" -mem=AES256 $ARCHIVE.zip $FILE_1 $FILE_2 ``` + Note that people can still see every filename in your archive, and can change those files. They just can't read the contents. Unzip: -```bash +```sh 7za x archive.zip ``` diff --git a/data/backups/unison.md b/data/backups/unison.md index 480dd46..55a1168 100644 --- a/data/backups/unison.md +++ b/data/backups/unison.md @@ -5,7 +5,7 @@ tags: [ "backups", "synch" ] Install unison on both machines, and make sure both have the same version of unison, with the same version of the ocaml compiler (the smallest difference will cause problems). -```bash +```sh unison -version ``` @@ -13,14 +13,14 @@ Create the `~/.unison` directory on both machines. Make a job called `backup`: -```bash +```sh JOB=backup ``` Here is an example job, which synchronizes the `~/music` directory with a remote machine which has the same username. -```bash +```sh echo " auto = true root=$HOME @@ -42,7 +42,7 @@ The last command means it will ignore any file with a name ending in `.flac`. The first command means this will run but also confirm which files will be deleted, and which will be transferred, us `batch = true` instead. Or you can deleted that line in the `.prf` file and run it with a flag: -```bash +```sh unison -batch *backup*.prf ```