plakar

module
v0.4.16-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2023 License: ISC

README

plakar

THIS IS WORK IN PROGRESS, DO NOT USE IN PLACE OF YOUR REGULAR BACKUPS.

IT IS NOT ALPHA, IT IS NOT EVEN PRE-ALPHA, IT IS PRE-BIGBANG.

DO YOU PLAN TO USE IT ?

  • NO: GOOD, CONTINUE NOT USING IT.
  • YES: PLEASE, DO NOT USE IT.

JUST IN CASE, HERE IS A FLOW CHART TO BETTER EXPLAIN VALID CURRENT USE-CASES:

+-----------------------+        +----+
| SHOULD I USE PLAKAR ? | -----> | NO |
+-----------------------+        +----+

TODO

  • general cleanup as this is my first real Go project

Quickstart

Requirement

plakar requires Go 1.18 or higher, it may work on older versions but hasn't been tested.

Installing the CLI
go install github.com/poolpOrg/plakar/cmd/plakar@latest
Creating a plakar repository

The next thing to do is to create a plakar repository,

$ plakar create
repository passphrase:
repository passphrase (confirm):
$

It may be desirable to create unencrypted plakar repositories, particularly for the default local plakar, the -no-encryption option may be used in this case:

$ plakar create -no-encryption
$

It is possible to create multiple repositories, simply by providing a path to the plakar create subcommand:

$ plakar on /tmp/plakar.1 create -no-encryption
$

$ plakar on /tmp/plakar.2 create
repository passphrase:
repository passphrase (confirm):
$

ALL of the subcommands below, support working on alternate plakars.

Whenever a non-default plakar is used, it should be noted on the command line with on:

$ plakar on /tmp/plakar.1 push /bin
$ plakar on /tmp/plakar.1 ls
2022-03-21T22:02:17Z  22cd673e    3.1 MB /private/etc
$ 
Pushing snapshots

plakar works by creating a snapshot of filesystem hierarchies and storing them efficiently.

$ plakar push /private/etc
$
Listing snapshots

Available snapshots are identified by UUID identifiers and can be listed:

$ plakar ls
2022-03-21T22:02:17Z  b3bdb2b0    3.1 MB /private/etc
$
Pulling snapshots

Each snapshot can be restored with a single command:

$ plakar pull b3bdb2b0
$ ls -ld private/etc/
drwxr-xr-x  82 gilles  staff  2624  6 Oct 21:48 private/etc/
$

Snapshot ID

Each snapshot is assigned a UUID to allow referencing it in subcommands.

To make it easier for humans, the plakar CLI provides prefix-based lookups so that the UUID does not need to be typed entirely. Whenever a snapshot UUID is expected, a user may provide the first characters and plakar will complete the missing part:

$ plakar ls
2022-03-21T22:02:17Z  b3bdb2b0    3.1 MB /private/etc
$ plakar check b3
$ echo $?
0
$

In case of ambiguity, an error will be emitted to ensure an unambiguous identifier is provided:

$ plakar ls
2022-03-21T22:02:17Z  b3bdb2b0    3.1 MB /private/etc
2022-03-21T22:02:17Z  b68a8f07    3.1 MB /private/etc
$ plakar check b
2022/03/06 21:50:10 plakar: snapshot ID is ambiguous: b (matches 2 snapshots)
$ plakar check b3
$ 

Snapshot path

Commands that refer to a resource inside a snapshot may refer to it using a snapshot-relative path.

These paths must be absolute but are prefixed with the snapshot they are relative to:

$ plakar ls b3:/private/etc/passwd
-rw-r--r--     root    wheel   7.6 kB /private/etc/passwd
$ plakar ls b3:/private/etc/passwd b6:/private/etc/passwd
-rw-r--r--     root    wheel   7.6 kB /private/etc/passwd
-rw-r--r--     root    wheel   7.6 kB /private/etc/passwd
$

For up-to-date informations

For up-to-date informations, you can read the documentation available at https://plakar.io

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL