backup syntax

This commit is contained in:
Malin Freeborn 2025-03-07 12:12:17 +01:00
parent 0d76eb0531
commit cc574d5358
Signed by: andonome
GPG Key ID: 52295D2377F4D70F
2 changed files with 17 additions and 18 deletions

View File

@ -8,22 +8,21 @@ tags: [ "tar", "backups", ".tgz", "tar.gz" ]
Combine many files and directories into a single t-archive file. Combine many files and directories into a single t-archive file.
```bash ```sh
tar cf "$ARCHIVE".tar $DIR tar cf "$ARCHIVE".tar $DIR
``` ```
You can remember this with the mnemonic '*C*reate *F*ile'. 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. 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 tar cf "$ARCHIVE".tar -C /etc/ nginx
``` ```
Check the contents of your archive with: Check the contents of your archive with:
```bash ```sh
tar tf "$ARCHIVE".tar 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: Instead, you can store the target in a variable:
```bash ```sh
files=$(ls /etc/nginx) files=$(ls /etc/nginx)
tar cf "$ARCHIVE".tar -C /etc/nginx/ $file 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 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'. 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. Create a zip-compressed archive with the `z` flag.
```bash ```sh
tar czf "$ARCHIVE".tgz -C /etc/nginx/ $file 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: Make archive:
```bash ```sh
PASSWORD=my_password 7za a -tzip -p "$PASSWORD" -mem=AES256 $ARCHIVE.zip $FILE_1 $FILE_2
```
```bash
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. Note that people can still see every filename in your archive, and can change those files.
They just can't read the contents. They just can't read the contents.
Unzip: Unzip:
```bash ```sh
7za x archive.zip 7za x archive.zip
``` ```

View File

@ -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). 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 unison -version
``` ```
@ -13,14 +13,14 @@ Create the `~/.unison` directory on both machines.
Make a job called `backup`: Make a job called `backup`:
```bash ```sh
JOB=backup JOB=backup
``` ```
Here is an example job, which synchronizes the `~/music` directory with a remote machine which has the same username. Here is an example job, which synchronizes the `~/music` directory with a remote machine which has the same username.
```bash ```sh
echo " echo "
auto = true auto = true
root=$HOME 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. 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: Or you can deleted that line in the `.prf` file and run it with a flag:
```bash ```sh
unison -batch *backup*.prf unison -batch *backup*.prf
``` ```