saunafs(1)
===========

== NAME

saunafs - open prompt to perform SaunaFS-specific operations

== SYNOPSIS

[verse]
*saunafs getgoal* [*-r*] [*-n*|*-h*|*-H*] 'OBJECT'...

[verse]
*saunafs setgoal* [*-r*] [*-n*|*-h*|*-H*] 'NAME' 'OBJECT'...

[verse]
*saunafs setquota* (*-u* 'UID' | *-g* 'GID') 'SOFT-LIMIT-SIZE' 'HARD-LIMIT-SIZE'
              'SOFT-LIMIT-INODES' 'HARD-LIMIT-INODES' 'MOUNTPOINT-ROOT-PATH'

[verse]
*saunafs repquota* [*-nhH*] (*-u* 'UID' | *-g* 'GID')+ 'MOUNTPOINT-ROOT-PATH'
*saunafs repquota* [*-nhH*] -a 'MOUNTPOINT-ROOT-PATH'

[verse]
*saunafs gettrashtime* [*-r*] [*-n*|*-h*|*-H*] 'OBJECT'...

[verse]
*saunafs settrashtime* [*-r*] [*-n*|*-h*|*-H*] [*+*|*-*]SECONDS 'OBJECT'...

[verse]
*saunafs geteattr* [*-r*] [*-n*|*-h*|*-H*] 'OBJECT'...

[verse]
*saunafs seteattr* [*-r*] [*-n*|*-h*|*-H*] *-f* 'ATTRNAME' [*-f* 'ATTRNAME' ...] 'OBJECT'...

[verse]
*saunafs deleattr* [*-r*] [*-n*|*-h*|*-H*] *-f* 'ATTRNAME' [*-f* 'ATTRNAME' ...] 'OBJECT'...

[verse]
*saunafs checkfile* 'FILE'...

[verse]
*saunafs fileinfo* 'FILE'...

[verse]
*saunafs dirinfo* [*-n*|*-h*|*-H*] 'OBJECT'...

[verse]
*saunafs filerepair* [*-n*|*-h*|*-H*] 'FILE'...

[verse]
*saunafs appendchunks* 'SNAPSHOT_FILE' 'OBJECT'...

[verse]
*saunafs makesnapshot* [*-o*] 'SOURCE'... 'DESTINATION'

[verse]
*saunafs rremove* [*-l*] 'OBJECT'...

== DESCRIPTION

See respective documents.

== GENERAL OPTIONS

Most of *saunafs* operations use following options to select format of printed
numbers:

*-n*::
Print exact numbers (e.g. 1024).

*-h*::
Print numbers with binary prefixes (Ki, Mi, Gi as `2^10`, `2^20` etc.).

*-H*::
Print numbers with SI prefixes (k, M, G as `10^3`, `10^6` etc.).

The same can be achieved by setting *SFSHRFORMAT* environment variable to: *0*
(exact numbers), *1* or *h* (binary prefixes), *2* or *H* (SI prefixes), *3* or
*h+* (exact numbers and binary prefixes), *4* or *H+* (exact numbers and SI
prefixes). The default is to print just exact numbers.

Other options:

*-r*::
This option enables recursive mode.

*-v*, *--version*::
Print version and exit

== INHERITANCE

When new object is created in SaunaFS, attributes such as goal, trashtime and
extra attributes are inherited from parent directory. So if you set i.e.
"noowner" attribute and goal to 3 in a directory then every new object created
in this directory will have goal set to 3 and "noowner" flag set. A newly
created object inherits always the current set of its parent's attributes.
Changing a directory attribute does not affect its already created children. To
change an attribute for a directory and all of its children use `'-r'` option.

== REPORTING BUGS

Report bugs to the GitHub repository <https://github.com/leil-io/saunafs> as an
issue.

== COPYRIGHT

Copyright 2008-2009 Gemius SA

Copyright 2013-2019 Skytechnology sp. z o.o.

Copyright 2023-2024 Leil Storage OÜ

SaunaFS is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, version 3.

SaunaFS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
SaunaFS. If not, see <http://www.gnu.org/licenses/>.

== SEE ALSO

sfsmount(1), saunafs-appendchunks(1), saunafs-checkfile(1),
saunafs-deleattr(1), saunafs-dirinfo(1), saunafs-fileinfo(1),
saunafs-filerepair(1), saunafs-geteattr(1), saunafs-getgoal(1),
saunafs-gettrashtime(1), saunafs-makesnapshot(1), saunafs-seteattr(1),
saunafs-setgoal(1), saunafs-settrashtime(1), saunafs-rremove(1),
saunafs-repquota(1), saunafs-setquota(1), sfs(7)
