This commit is contained in:
JMARyA 2024-08-04 14:01:41 +02:00
parent 5b1734d551
commit c34f1d65d2
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263

View file

@ -0,0 +1,141 @@
---
obj: application
website: https://dystroy.org/dysk
repo: https://github.com/Canop/dysk
---
# dysk
dysk is a [linux](../../linux/Linux.md) utility listing your [filesystems](../../linux/filesystems/Filesystems.md).
## Usage
Usage: `dysk [-a, --all] [PATH]`
### Table
The standard output of dysk is a table with a default set of columns and only the "normal looking" [filesystems](../../linux/filesystems/Filesystems.md). You can modify it easily.
#### Columns
You can run `dysk --list-cols` for the list of all columns.
**All columns:**
| name | default | meaning |
| ------------------ | ------- | ---------------------------------------------- |
| id | | mount point id |
| dev | | device id |
| filesystem | ✓ | filesystem |
| label | | label |
| type | ✓ | filesystem type |
| remote | | whether it's a remote filesystem |
| disk | ✓ | short tag of the underlying storage identified |
| used | ✓ | cumulated size of the occupied blocks |
| use | ✓ | graphical view of the use share |
| use_percent | | percentage of occupied blocks |
| free | ✓ | cumulated size of the available blocks |
| free_percent | | percentage of available blocks |
| size | ✓ | size of the volume |
| inodesfree | | available inodes |
| inodesused | | inodes used |
| inodes | | inodes use share, graphical |
| inodes_use_percent | | inodes use share, in percents |
| inodescount | | total number of inodes in the filesystem |
| mount | ✓ | mounting path |
#### Choose columns
With the `--cols` launch argument, shortened as `-c`, you can change the displayed columns or their order.
With `-c all`, you may see all available columns, but that's normally too much for convenience:
The most obvious use of the `--cols` argument is the explicit definition of the columns to display.
For example `dysk -c label+use+size+disk+mount` will show the label, use, size, disk, and mount columns, in that order.
#### Sort
With the `--sort` launch argument, shortened as `-s`, you can specify the order of displayed rows.
The argument's value must be either a column name, for example `dysk -s dev`, or a column name and a direction, for example `dysk --sort size-desc`.
The `desc` and `asc` directions can be abbreviated into `d` and `a`.
#### CSV
With the `--csv` argument, you can ask dysk to output the table in [CSV](../../files/CSV.md):
`dysk --csv > mounts.csv`
You may choose the separator with the `--csv-separator` argument.
Filters, sorting, and column selection work the same than for standard tables so you may do this:
`dysk --csv -f 'size>100G' -c remote+default+inodes > mounts.csv`
### [JSON](../../files/JSON.md)
Use `-j` or `--json`. The normal output is an array of all filesystem matching the filter.
`dysk -j | jq '.[0]' > disk.json`
```json
{
"bound": false,
"dev": {
"major": 8,
"minor": 1
},
"disk": {
"crypted": false,
"ram": false,
"removable": false,
"rotational": false,
"type": "SSD"
},
"fs": "/dev/sda1",
"fs-label": null,
"fs-type": "ext4",
"id": 26,
"mount-point": "/",
"remote": false,
"stats": {
"available": "81G",
"bavail": 19764035,
"bfree": 22790364,
"blocks": 59233748,
"bsize": 4096,
"inodes": {
"avail": 13880393,
"files": 15114240,
"free": 13880393,
"used-percent": "8%"
},
"size": "243G",
"used": "162G",
"used-percent": "67%"
},
"unreachable": false
}
```
The disk, stats, and stats.inodes structures, or the fs-label, may be null for some [filesystems](../../linux/filesystems/Filesystems.md).
### Filter
The `--filter` argument, shortened in `-f`, lets you specify a constraint, or combine several ones.
A constraint can be related to any column.
You can for example fetch the [filesystems](../../linux/filesystems/Filesystems.md) with a given type with `dysk -f 'type=xfs'`.
Or remote volumes with `dysk -f 'remote=true'`.
The operators you can apply to a column are the following ones:
| operator | meaning |
| -------- | -------------------------------------------------------- |
| `<` | lower |
| `<=` | lower or equal |
| `>` | greater |
| `>=` | greater or equal |
| `<>` | different |
| `=` | somehow equal - for example `fs=sda` matches `/dev/sda1` |
| `==` | really equal |
You can combine several column conditions with boolean operators `|` (or), `&` (and) and `!` (not) and if needed you can use parenthesis.
For example you may want to select the volumes with not enough space with
`dysk -f 'free<100G | use>65%'`