add dysk
This commit is contained in:
parent
5b1734d551
commit
c34f1d65d2
1 changed files with 141 additions and 0 deletions
141
technology/applications/cli/dysk.md
Normal file
141
technology/applications/cli/dysk.md
Normal 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%'`
|
Loading…
Reference in a new issue