Giter VIP home page Giter VIP logo

zfs-snap-diff's Introduction

zfs-snap-diff

helps you with your zfs snapshots.

For a terminal based tool see zsd.

Documentation

See the website for more details.

Get it

Prebuild

You can download a prebuild version from here.

Build from source

You only need go to build this project.

Check the docs for more information.

Run it

./zfs-snap-diff [OPTIONS] <ZFS_DATASET_NAME>

This starts a embedded webserver and serves the included web-app at http://127.0.0.1:12345.

./doc/site/static/images/browse-filesystem.png

zfs-snap-diff's People

Contributors

j-keck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zfs-snap-diff's Issues

Nix derivation fails to build

It seems that the nix derivation tries to build using a broken version of the purescript nix library it uses (one of the downloads 403s). Would it be possible to get an updated nix derivation?

The tool looks really cool, I'd love to try it out.

Docker container?

Has anyone had any luck getting this to work inside a docker container?
What would I need to map into the container for zfs-snap-diff to see my snapshots?

Fails to build

[pve]/usr/local/src/zfs-snap-diff (master): ./build.pl build
generate 'bindata.go': (go-bindata -ignore=go-bindata -ignore=.git -ignore=config.json -ignore=README -ignore=angular-mocks.js -ignore='emacs.*core' webapp/...)
flag provided but not defined: -ignore
Usage: go-bindata [options] <input directories>

  -debug=false: Do not embed the assets, but provide the embedding API. Contents will still be loaded from disk.
  -nocompress=false: Assets will *not* be GZIP compressed when this flag is specified.
  -nomemcopy=false: Use a .rodata hack to get rid of unnecessary memcopies. Refer to the documentation to see what implications this carries.
  -o="./bindata.go": Optional name of the output file to be generated.
  -pkg="main": Package name to use in the generated code.
  -prefix="": Optional path prefix to strip off asset names.
  -tags="": Optional set of uild tags to include.
  -version=false: Displays version information.
Uncaught exception from user code:
    unable to build 'bindata.go' at ./build.pl line 170.
    main::gen_bindata() called at ./build.pl line 65
    main::build called at ./build.pl line 27

recover a file from the backup location

the ui should provide a feature to recover a file from the backup

if you recover a file from a snapshot, a backup of the actual file are stored under /path/where/the/file/was/.zsd/<FILE_NAME>_<TIMESTAMP>.
which this feature, you can easy recover a wrong overriden file.


This issue is to discuss features of zfs-snap-diff.
Please comment or upvote (:+1:) if you need the feature / downvote (:-1:) if you doesn't.

bookmarks for directories in the ui

the ui should provide a 'bookmark' feature for each dataset

if you often need to recover / review a file deep in the directory structure, it could be handy to add a bookmark to this location


This issue is to discuss features of zfs-snap-diff.
Please comment or upvote (:+1:) if you need the feature / downvote (:-1:) if you doesn't.

create zfs snapshots in the ui

zfs-snap-diff should provide the functionality to create zfs snapshots in the ui.


This issue is to discuss features of zfs-snap-diff.
Please comment or upvote (:+1:) if you need the feature / downvote (:-1:) if you doesn't.

snapshot-timemachine file timestamp notes

Hi,

It seems I failed to notice two things with the original code with #12.
Appologies.

the timestamp given for the record is the snapshot timestamp; is it possible to use the file timestamp instead?
Also; parse-time-string would be happier with a RFC 822 datetime:

"Parse the time in STRING into (SEC MIN HOUR DAY MON YEAR DOW DST TZ).
STRING should be something resembling an RFC 822 (or later) date-time, e.g.,
"Fri, 25 Mar 2016 16:24:56 +0100", but this function is
somewhat liberal in what format it accepts, and will attempt to
return a "likely" value even for somewhat malformed strings.
The values returned are identical to those of `decode-time', but
any unknown values other than DST are returned as nil, and an
unknown DST value is returned as -1."

Call for testers

Currently i rewrite zfs-snap-diff in the dev branch.

Some features are missing (also the documentation), but i think it's better to get some input
before i make a new release.

Maybe someone has some time in the coming days to test the new version and give some feedback.

This would help to get a new stable release.

You can find the binaries here: http://j-keck.github.io/zfs-snap-diff/

Thanks, Jürgen

HTTPS / SSL Support

I think I would love to try this, but it appears to only support HTTP. Please correct me if I am wrong.

This is a concern for me because it would be deployed on production servers.

the backup location should be under `~/.zsd/...`

currently the backup location for files, which are restored from a snapshot is under /path/where/the/file/was/.zsd/<FILE_NAME>_<TIMESTAMP>.
zfs-snap-diff should put the backups under ~/.zsd/....


This issue is to discuss features of zfs-snap-diff.
Please comment or upvote (:+1:) if you need the feature / downvote (:-1:) if you doesn't.

ideal output format for integration with snapshot-timemachine

Hi, I am currently working on a pull request (mrBliss/snapshot-timemachine#4) to integrate this tool directly within emacs.

I'm currently using the verbose debug output (-v) to capture the dataset mount path.

An optimal listing would be in to form:

idx | snapshot name | snapshot file | file date

so if currently running zsd -d 15 .spacemacs list outputs

# Snapshot Snapshot age
0 autosnap_2020-06-11_23:59:00_daily 5 days
1 autosnap_2020-06-04_23:59:05_daily 12 days

I would benefit from running zfs -d 15 --timemachine .spacemacs list to output

# Snapshot Snapshot file File Date
0 autosnap_2020-06-11_23:59:00_daily /home/rhansen/.zfs/snapshot/autosnap_2020-06-11_23:59:00_daily/.spacemacs Jun 5 23:14
1 autosnap_2020-06-04_23:59:05_daily /home/rhansen/.zfs/snapshot/autosnap_2020-06-04_23:59:05_daily/.spacemacs Jun 12 15:15

An additional option to omit the headers would be a nice extra.

What do you think?

Doesn't work

Just tried this, and it looks broken on Centos7. In the web UI I click on a snapshot under diff and it just gives a spinning wheel endlessly, even when I click elsewhere.

Also there is an option to specify a port other than 12345 but if I try to specify a specific interface like -p 172.100.100.101:12345 ,it doesn't work. I don't want to launch this on all interfaces (-a), this is very insecure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.