An ZFS administration tool inspired on Midnight commander

Related tags

Command-line Toolszc
Overview

ZC - ZFS Commander

An ZFS administration tool inspired on Midnight commander

Work in Progress

Description

ZFS Commander is a simple front-end for the most commonly used zpool & zfs commands. While the tool is a work-in-progress, several functions are already working. See the list of functions implemented in Usage section.

The tool is composed of 2 panes, each showing different ZFS related information. The tool will start with Datasets at left and Snapshots at the right pane. By pressing TAB, each window will cycle through the different modes: Pools, Datasets, Volumes and Snapshots.

ZFS Commander ZFS Commander

Installation

ZFS commander is build on Rust language, so make sure to have Rust installed on your machine. Instructions can be found here: https://www.rust-lang.org/tools/install

To compile and install ZFS comamnder, run the following commands:

$ sudo apt install build-essential ncurses-dev
$ make
$ sudo make install
$ make clean

To uninstall run:

$ sudo make uninstall

Usage

As the execution of some ZFS operations require higher privilege run ZFS commander with sudo or doas:

$ sudo zc

Operation

Use TAB key to switch between the modes available.

Use LEFT or RIGHT keys to navigate in between the two windows.

Function Keys per Mode

Key Pool Dataset Snapshot Volume
F1 Help Help Help Help
F2 - zfs promote zfs diff -
F3 - - zfs send -
F4 - - - -
F5 - zfs snapshot zfs clone zfs snapshot
F6 - zfs rename zfs rename zfs rename
F7 zpool scrub zfs create zfs rollback zfs create
F8 zpool destroy zfs destroy zfs destroy zfs destroy
F9 zpool get all zfs get all zfs get all zfs get all
F10 Exit Exit Exit Exit

NOTE: F9 Get All window enables individual properties to be directly edited.

Comments
  • New Feature: Explicit refresh

    New Feature: Explicit refresh

    The data can become stale while zc is running.

    For example, if a snapshot is created or destroyed, outside of zc, those changes will not appear in zc until something causes that list to be reloaded. An explicit command to refresh current data would be handy.

    opened by dodexahedron 0
  • New Feature: Allow setting user-defined properties

    New Feature: Allow setting user-defined properties

    ZFS supports user-defined properties, as long as they have a colon in the name.

    It would be handy if zc had a way to add/set/remove user properties on datasets.

    Documentation for reference: https://openzfs.github.io/openzfs-docs/man/8/zfsprops.8.html#User_Properties

    opened by dodexahedron 0
  • Suggestion: Tree view instead of tabbed panes

    Suggestion: Tree view instead of tabbed panes

    We can see pool, volume, dataset, and snapshot information in zc. However, there's a logical organization to those things that naturally fits a tree.

    For example, it was a little unintuitive, to me, that, if I have a specific dataset highlighted, all the snapshots across all datasets are listed.

    A tree organization, sorta like one might find in targetcli, seems like it would provide a much friendlier user experience.

    Then, perhaps, whatever object is selected in said tree would have its properties automatically displayed on the right pane.

    opened by dodexahedron 0
  • Non-settable properties should not allow the user to attempt to edit them

    Non-settable properties should not allow the user to attempt to edit them

    When in the dataset properties list, it is possible to attempt to edit non-settable properties, though of course attempts to do so will fail. If a property is not settable, the edit dialog should simply not come up.

    opened by dodexahedron 0
  • Suggestion: Command hints should indicate they are F-keys

    Suggestion: Command hints should indicate they are F-keys

    As title says. Yes, the documentation points it out, but it would be much clearer if the program showed F1, F2, etc, rather than just the numbers. I wondered if my system was missing a component or something until I went back to the documentation to see that they are, in fact, the F-keys. My first instinct was to try ctrl-1, alt-1, etc. F1 didn't occur to me right away.

    opened by dodexahedron 0
Releases(v1.1.0)
Custom function scheduler TUI (text-based user interface) in the console

Custom function scheduler TUI (text-based user interface) in the console

Luke 1 Oct 26, 2022
A simple python script to execute a command when a YubiKey is disconnected

YubiKeyExecute A python script to execute a command when a YubiKey / YubiKeys are disconnected. ‏‏‎ ‎ How to use: 1. Download the latest release and d

6 Mar 12, 2022
Albert launcher extension for converting units of length, mass, speed, temperature, time, current, luminosity, printing measurements, molecular substance, and more

unit-converter-albert-ext Extension for converting units of length, mass, speed, temperature, time, current, luminosity, printing measurements, molecu

Jonah Lawrence 2 Jan 13, 2022
img-proof (IPA) provides a command line utility to test images in the Public Cloud

overview img-proof (IPA) provides a command line utility to test images in the Public Cloud (AWS, Azure, GCE, etc.). With img-proof you can now test c

13 Jan 07, 2022
Spotify Offline is a command line tool that allows one to download Spotify playlists in MP3 format.

Spotify Offline v0.0.2 listen to your favorite spotify songs, offline Overview Spotify Offline (spotifyoffline) is a command line tool that allows one

Aarush Gupta 1 Nov 28, 2021
adds flavor of interactive filtering to the traditional pipe concept of UNIX shell

percol __ ____ ___ ______________ / / / __ \/ _ \/ ___/ ___/ __ \/ / / /_/ / __/ / / /__/ /_/ / / / .__

Masafumi Oyamada 3.2k Jan 07, 2023
Custom 64 bit shellcode encoder that evades detection and removes some common badchars (\x00\x0a\x0d\x20)

x64-shellcode-encoder Custom 64 bit shellcode encoder that evades detection and removes some common badchars (\x00\x0a\x0d\x20) Usage Using a generato

Cole Houston 2 Jan 26, 2022
A simple command-line tracert implementation in Python 3 using ICMP packets

Traceroute A simple command-line tracert implementation in Python 3 using ICMP packets Details Traceroute is a networking tool designed for tracing th

James 3 Jul 16, 2022
AutoSub is a CLI application to generate subtitle files (.srt, .vtt, and .txt transcript) for any video file using Mozilla DeepSpeech.

AutoSub About Motivation Installation Docker How-to example How it works TO-DO Contributing References About AutoSub is a CLI application to generate

Abhiroop Talasila 414 Jan 06, 2023
Python CLI for accessing CSCI320 PDM Database

p320_14 Python CLI for accessing CSCI320 PDM Database Authors: Aidan Mellin Dan Skigen Jacob Auger Kyle Baptiste Before running the application for th

Aidan Mellin 1 Nov 23, 2021
A CLI Password Manager made using Python and Postgresql database.

ManageMyPasswords (CLI Edition) A CLI Password Manager made using Python and Postgresql database. Quick Start Guide First Clone The Project git clone

Imira Randeniya 1 Sep 11, 2022
Generate your name in Ascii modular type art through the terminal

ASCII Name Generator Designed and developed by Eduardo Aire The ASCII Art Name Generator is a simple program that helps you to have a practical Shell/

Eduardo Aire 1 Nov 17, 2021
A library for creating text-based graphs in the terminal

tplot is a Python package for creating text-based graphs. Useful for visualizing data to the terminal or log files.

Jeroen Delcour 164 Dec 14, 2022
Trans is a dependency-free CLI for Google Translate

Trans is a dependency-free CLI for Google Translate

11 Jan 04, 2022
A simple Python CLI tool that draws routes/paths on a given map.

Map Router A simple Python CLI tool that draws routes/paths on a given map. Index Installation Usage Docs Why? License Support Installation Coming soo

Pedro Morim 1 Nov 07, 2021
A simple note taker CLI program written in python

note-taker A simple note taker program written in python This allows you to snip your todo's, notes, and your tasks easily without extra charges Requi

marcusz 4 Nov 02, 2021
An awesome Python wrapper for an awesome Docker CLI!

An awesome Python wrapper for an awesome Docker CLI!

Gabriel de Marmiesse 303 Jan 03, 2023
Powerful yet easy command line calculator.

Powerful yet easy command line calculator.

Cruisen 1 Jul 22, 2022
slipit is a command line utility for creating archives with path traversal elements.

slipit is a command line utility for creating archives with path traversal elements. It is basically a successor of the famous evilarc utility with an extended feature set and improved base functiona

usd AG 35 Dec 23, 2022
A Terminal UI for Discord

ToastCord ToastCord is a Discord Terminal UI. At the moment you can only look at Direct messages. TODO: - Add support for guilds - Message sending sup

toast 82 Dec 18, 2022