falzm / fsdiff Goto Github PK
View Code? Open in Web Editor NEWFilesystem changes tracking tool ๐
License: MIT License
Filesystem changes tracking tool ๐
License: MIT License
In some cases the checksum performed during a snapshot can be resource-intensive (e.g. big files, very slow storage device...). If content change doesn't matter so much, a shallow mode (where no file checksum are computed/compared) could be useful.
This tool should be packaged for various GNU/Linux distributions (.deb
, .rpm
etc.) and via Homebrew for macOS. Might look at this GoReleaser thing.
Describe the problem
fsdiff
returns errors when handling socket files:
$ fsdiff snap -o before.snap --carry-on Library/
error: unable to compute file checksum: open Library/Containers/com.docker.docker/Data/backend.sock: operation not supported on socket
To Reproduce
fsdiff snapshot path/to/root/dir
Version
fsdiff 0.2.0 (commit: d41c2d041539079cddff2a7a36d0d5971a687fe7)
build info: Go go1.12.4 (gc)
Enable Travis CI testing on repository change.
It would be convenient to be able to exclude some file paths from being included in the snapshot. A git-like --ignore
system is considered (package gitignore looks interesting).
When snapshotting a directory containing a symlink, fsdiff ends with this error:
error: unable to compute file checksum: read xxx/~/Downloads/xxx/yyy/zzz: is a directory
At some point, it could be interesting to go the extra mile and also store the files' content in the snapshot to allow users to track how the content has changed instead of just know that it's changed. Caution: this feature could potentially result in very large snapshot files.
Currently fsdiff
is not able to track when a directory is renamed: doing so results in reporting that a directory (and its content) has been deleted and a new one appeared. Maybe there is way to achieve this by looking at the directory inode (if the snapshotted tree lies on the same filesystem ยฏ\_(ใ)_/ยฏ
)
When diff'ing large file trees (e.g. fsdiff snap /usr
after a system upgrade), it would be nice to have a way to only show specific paths (e.g --include /usr/bin
), and/or exclude specific paths (e.g. --exclude /usr/src/linux-headers-*
).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.