ausyscall

title: ausyscall(8)

text:
# ausyscall(8)

## NAME
ausyscall - a program that allows mapping syscall names and numbers

## SYNOPSIS
ausyscall [arch] name | number | --dump | --exact

## DESCRIPTION
ausyscall is a program that prints out the mapping from syscall name to number and reverse for the given arch. The arch can be anything returned by `uname -m`. If arch is not given, the program will take a guess based on the running image. Or for convenience, you can pass b32 or b64 to use the current arch but a specific ABI. You may give the syscall name or number and it will find the opposite. You can also dump the whole table with the --dump option. By default a syscall name lookup will be a substring match meaning that it will try to match all occurrences of the given name with syscalls. So giving a name of chown will match both fchown and chown as any other syscall with chown in its name. If this behavior is not desired, pass the --exact flag and it will do an exact string match.

The program takes the special arch, uring, to denote that you want to specify io_uring operations. In this case, the arch must be given because it will otherwise detect the underlying hardware.

This program can be used to verify syscall numbers on a biarch platform for rule optimization. For example, suppose you had an auditctl rule:

-a always, exit -S open -F exit=-EPERM -k fail-open

If you wanted to verify that both 32 and 64 bit programs would be audited, run "ausyscall i386 open" and then "ausyscall x86_64 open". (Or use the b32 and b64 option.) Look at the returned numbers. If they are different, you will have to write two auditctl rules to get complete coverage.

```
-a always,exit -F arch=b32 -S open -F exit=-EPERM -k fail-open
-a always,exit -F arch=b64 -S open -F exit=-EPERM -k fail-open
```

For more information about a specific syscall, use the man program and pass the number 2 as an argument to make sure that you get the syscall information rather than a shell script program or glibc function call of the same name. For example, if you wanted to learn about the open syscall, type: man 2 open.

## OPTIONS
--dump

Print all syscalls for the given arch

--exact

Instead of doing a partial word match, match the given syscall name exactly.

## SEE ALSO
ausearch(8), auditctl(8).

## AUTHOR
Steve Grubb


autofs

package: autofs

title: autofs(8)

summary: Service control for the automounter

text:
# autofs(8)

## NAME
autofs - Service control for the automounter

## SYNOPSIS
If a SysV init script system is being used:

/etc/init.d/autofs start|stop|restart|reload|status

or if the systemd init system is being used:

systemctl start|stop|restart|reload|status autofs.service

## DESCRIPTION
autofs controls the operation of the automount(8) daemon(s) running on the Linux system. Usually autofs is invoked at system boot time with the start parameter and at shutdown time with the stop parameter. Service control actions can also be manually invoked by the system administrator to shut down, restart, reload or obtain service status.

## OPERATION
autofs will consult a configuration file /etc/auto.master (see auto.master(5)) by default to find mount points on the system. For each of those mount points automount(8) will mount and start a thread, with the appropriate parameters, to manage the mount point.

/etc/init.d/autofs reload or systemctl autofs.service reload will check the current auto.master map against the current automount managed mounts. It will terminate those daemons or threads (depending on autofs version) whose entries have been removed, re-read the automount maps for entries that have changed and start new daemons or threads for entries that have been added.

If an indirect map is modified then the change will become effective immediately. If an indirect map uses the browse option, the master map contains direct mount maps or the auto.master map is modified then the autofs service control reload action must be rerun to activate the changes.

However, if a map entry has offsets and is currently in use the offset mounts cannot be updated due to potential mount dependencies. In this case the map entry offsets will not be updated until after the map entry has expired.

/etc/init.d/autofs status or systemctl status autofs.service will display the status of, automount(8), running or not. When using the systemd init system the status output includes somewhat more information related to the service status.

systemctl(1) has more functions than the actions mentioned here, see systemctl(1) for more information.

## SEE ALSO
automount(8), autofs(5), autofs.conf(5), auto.master(5), autofs_ldap_auth.conf(5), systemctl(1).

## AUTHOR
This manual page was written by Christoph Lameter <chris@waterf.org>, for the Debian GNU/Linux system. Edited by H. Peter Anvin <hpa@transmeta.com> and Ian Kent <raven@themaw.net>.

branch: sisyphus


automount

title: automount(8)

summary: manage autofs mount points

text:
# automount(8)

## NAME
automount - manage autofs mount points

## SYNOPSIS
automount [options] [master_map]

## DESCRIPTION
The automount program is used to manage mount points for autofs, the inlined Linux automounter. automount works by reading the auto.master(5) map and sets up mount points for each entry in the master map allowing them to be automatically mounted when accessed. The file systems are then automatically umounted after a period of inactivity.

## OPTIONS
-h, --help

Print brief help on program usage.

-p, --pid-file

Write the pid of the daemon to the specified file.

-t <seconds>, --timeout <seconds>

Set the global minimum timeout, in seconds, until directories are unmounted. The default is 10 minutes. Setting the timeout to zero disables umounts completely. The internal program default is 10 minutes, but the default installed configuration overrides this and sets the timeout to 5 minutes to be consistent with earlier autofs releases.

-M <seconds>, --master-wait <seconds>

Set the maximum time to wait for the master map to become available if it cannot be read at program start.

-n <seconds>, --negative-timeout <seconds>

Set the default timeout for caching failed key lookups. The default is 60 seconds.

-v, --verbose

Enables logging of general status and progress messages for all autofs managed mounts.

-d[LEVEL], --debug[=LEVEL]

Enables logging of general status and progress messages as well as debugging messages for all autofs managed mounts. The default LEVEL is 0. automounter must perform OpenLDAP authenticated binds for optional argument LEVEL to have any effect. OpenLDAP uses a bitmap to enable debugging for specific components. Debug LEVEL=0 disables libldap deugging. For further details see slapd(8).

-Dvariable=value, --define variable=value

Define a global macro substitution variable. Global definitions are over-ridden macro definitions of the same name specified in mount entries.

-S, --systemd-service

Used when running the automounter as a systemd service to ensure log entry format is consistent with the log entry format when running as a daemon.

-f, --foreground

Run the daemon in the foreground and log to stderr instead of syslog."

-r, --random-multimount-selection

Enables the use of random selection when choosing a host from a list of replicated servers.

-m, --dumpmaps [<map type> <map name>]

With no parameters, list information about the configured automounter maps, then exit. If the dumpmaps option is given and is followed by two parameters, "<map type> <map name>" then simple "<key, value>" pairs that would be read in by a map read are printed to stdout if the given map type and map name are found in the map configuration.

If the map is an LDAP map and there is more than one map of same name in different base dns only the first map encountered by autofs will be listed. Similarly, if the map is a file map and there is more than one map of the same name in different directories, only the first map encountered will be listed.

If the map type is an old style multi-map and any one of the map names in the multi-map entry matches the given map name the entries that would be used by autofs for the whole multi-map will be listed.

-O, --global-options

Allows the specification of global mount options used for all master map entries. These options will either replace or be appended to options given in a master map entry depending on the APPEND_OPTIONS configuration setting.

-V, --version

Display the version number, then exit.

-l, --set-log-priority priority path [path,...]

Set the daemon log priority to the specified value. Valid values include the numbers 0-7, or the strings emerg, alert, crit, err, warning, notice, info, or debug. Log level debug will log everything, log levels info, warn (or warning), or notice with enable the daemon verbose logging. Any other level will set basic logging. Note that enabling debug or verbose logging in the autofs global configuration will override dynamic log level changes. For example, if verbose logging is set in the configuration then attempting to set logging to basic logging, by using alert, crit, err or emerg won't stop the verbose logging. However, setting logging to debug will lead to everything (debug logging) being logged witch can then also be disabled, returning the daemon to verbose logging. This option can be specified to change the logging priority of an already running automount process. The path argument corresponds to the automounted path name as specified in the master map.

-C, --dont-check-daemon

Don't check if the daemon is currently running (see NOTES).

-F, --force

Force an unlink umount of existing mounts under configured autofs managed mount points during startup. This can cause problems for processes with working directories within these mounts (see NOTES).

-U, --force-exit

Force an unlink umount of existing mounts under configured autofs managed mount points and exit rather than continuing the startup. This can cause problems for processes with working directories within these mounts (see NOTES).

## ARGUMENTS
automount takes one optional argument, the name of the master map to use.

master_map

Location for autofs master map that defines autofs managed mount points and the mount maps they will use. The default is auto.master.

## NOTES
If the automount daemon catches a USR1 signal, it will umount all currently unused autofs managed mounted file systems and continue running (forced expire). If it catches the TERM signal it will umount all unused autofs managed mounted file systems and exit if there are no remaining busy file systems. If autofs has been compiled with the option to ignore busy mounts on exit it will exit leaving any busy mounts in place otherwise busy file systems will not be umounted and autofs will not exit. Alternatively, if autofs has been compiled with the option to enable forced shutdown then a USR2 signal to the daemon will cause all mounts to be umounted and any busy mounts to be forcibly umounted, including autofs mount point directories (summary execution). Note that the forced umount is an unlink operation and the actual umount will not happen in the kernel until active file handles are released. The daemon also responds to a HUP signal which triggers an update of the maps for each mount point.

If any autofs mount point directories are busy when the daemon is sent an exit signal the daemon will not exit. The exception to this is if autofs has been built with configure options to either ignore busy mounts at exit or force umount at exit. If the ignore busy mounts at exit option is used the filesystems will be left in a catatonic (non-functional) state and can be manually umounted when they become unused. If the force umount at exit option is used the filesystems will be umounted but the mount will not be released by the kernel until they are no longer in use by the processes that held them busy. If automount managed filesystems are found mounted when autofs is started they will be recovered unless they are no longer present in the map in which case they need to umounted manually.

If the option to disable the check to see if the daemon is already running is used be aware that autofs currently may not function correctly for certain types of automount maps. The mounts of the separate daemons might interfere with one another. The implications of running multiple daemon instances needs to be checked and tested before we can say this is supported.

If the option to force an unlink of mounts at startup is used then processes whose working directory is within unlinked automounted directories will not get the correct pwd from the system. This is because, after the mount is unlinked from the mount tree, anything that needs to walk back up the mount tree to construct a path, such as getcwd(2) and the proc filesystem /proc/<pid>/cwd, cannot work because the point from which the path is constructed has been detached from the mount tree.

## SEE ALSO
autofs(5), autofs(8), autofs.conf(5), auto.master(5), mount(8), autofs_ldap_auth.conf(5).

## BUGS
Don't know, I've fixed everything I know about.

The documentation could be better.

Please report other bugs along with a detailed description to <autofs@vger.kernel.org>. Visit http://vger.kernel.org/vger-lists.html#autofs for information about the list.

## AUTHOR
H. Peter Anvin <hpa@transmeta.com> and Ian Kent <raven@themaw.net>.


avahi-autoipd

package: avahi-autoipd

title: avahi-autoipd(8)

text:
# avahi-autoipd(8)

## NAME
avahi-autoipd - IPv4LL network address configuration daemon

## SYNOPSIS
avahi-autoipd [options] interface

avahi-autoipd --kill interface

avahi-autoipd --refresh interface

avahi-autoipd --check interface

## DESCRIPTION
avahi-autoipd implements IPv4LL, "Dynamic Configuration of IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for automatic IP address configuration from the link-local 169.254.0.0/16 range without the need for a central server. It is primarily intended to be used in ad-hoc networks which lack a DHCP server.

IPv4LL is part of the Zeroconf stack.

avahi-autoipd can be used as stand-alone address allocator or as plugin for a DHCP client such as ISC's dhclient, where it can be used as fallback solution if no DHCP server is found.

To allow communication between hosts that have only an IPv4LL address assigned and hosts that only have a routable IP address assigned you may add the following routes to both network configurations:

route add -net 169.254.0.0 netmask 255.255.0.0 dev eth0 metric 99

route add default dev eth0 metric 99

See http://developer.apple.com/qa/qa2004/qa1357.html for more information.

## OPTIONS
-D | --daemonize

Daemonize after startup. Implies --syslog.

-k | --kill

Kill an already running avahi-autoipd on the specified network interface. (Equivalent to sending a SIGTERM)

-r | --refresh

Tell an already running avahi-autoipd to re-announce the acquired IP address on the specified network interface. (Equivalent to sending a SIGHUP)

-c | --check

Return 0 as return code if avahi-autoipd is already running for the specified network interface.

-s | --syslog

Log to syslog instead of STDERR. Implied by --daemonize.

--debug

Enable verbose mode.

--no-drop-root

Don't drop root privileges after startup. We recommend not to use this option.

--no-chroot

Don't chroot(2) the daemon. This option is only available when compiled with chroot() support.

-S | --start=

Try to acquire the specified IP address, which must be from the IPv4LL range 169.254.0.0/16.

-w | --wait

Wait until a IP address has been successfully acquired before detaching. Only valid in combination with --daemonize.

--force-bind

Acquire an IPv4LL address, even if a routable address has been configured on the interface.

--no-proc-title

Don't change the process name while running. Unless this option is specified avahi-autoipd will reflect its current state and the IP address in the process title.

-h | --help

Show help.

-v | --version

Show version information.

## FILES
/etc/avahi/avahi-autoipd.action: the script to run when an IP address as been acquired or is lost.

## SIGNALS
SIGINT, SIGTERM: avahi-autoipd will shutdown. (Same as --kill)

SIGHUP: avahi-autoipd will re-announce the acquired IP address. (Same as --refresh)

## AUTHORS
The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from http://avahi.org/

## SEE ALSO
avahi-autoipd.action(8), dhclient(8)

http://avahi.org/wiki/AvahiAutoipd documents how avahi-autoipd is best packaged and integrated into distributions.

## COMMENTS
This man page was written using xml2man(1) by Oliver Kurth.


avahi-autoipd.action

title: avahi-autoipd.action(8)

summary: avahi-autoipd action script

text:
# avahi-autoipd.action(8)

## NAME
avahi-autoipd.action - avahi-autoipd action script

## SYNOPSIS
/etc/avahi/avahi-autoipd.action

## DESCRIPTION
avahi-autoipd.action is the action script that is called whenever an IP address has been acquired by avahi-autoipd or when it detected an IP address conflict. The script should add or remove the specified address from the specified network interface.

## PARAMETERS
argv[1] An event string: one of BIND, CONFLICT, UNBIND or STOP. If BIND is passed an IP address has been successfully acquired and the script shall add it to the network interface. If CONFLICT is passed avahi-autopid detected a IP address on the local network, the action script should remove the configured IP address. If UNBIND is passed the IP address should be removed from the interface, too, because a routable address has been configured to the interface by some other program. If STOP is passed the avahi-autoipd is being shutdown and the action script should remove the IP address. In short: on BIND the address should be added to the interface, on CONFLICT, UNBIND or STOP it should be removed.

argv[2] The network interface name.

argv[3] An IP address from the IPv4LL range.

## AUTHORS
The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from http://avahi.org/

## SEE ALSO
avahi-autoipd(8), dhclient-script(8), ip(8), ifconfig(8)

## COMMENTS
This man page was written using xml2man(1) by Oliver Kurth.


avahi-daemon

package: avahi-daemon

title: avahi-daemon(8)

summary: The Avahi mDNS/DNS-SD daemon

text:
# avahi-daemon(8)

## NAME
avahi-daemon - The Avahi mDNS/DNS-SD daemon

## SYNOPSIS
avahi-daemon [options]

avahi-daemon --kill

avahi-daemon --reload

avahi-daemon --check

## DESCRIPTION
The Avahi mDNS/DNS-SD daemon implements Apple's Zeroconf architecture (also known as "Rendezvous" or "Bonjour"). The daemon registers local IP addresses and static services using mDNS/DNS-SD and provides two IPC APIs for local programs to make use of the mDNS record cache the avahi-daemon maintains. First there is the so called "simple protocol" which is used exclusively by avahi-dnsconfd (a daemon which configures unicast DNS servers using server info published via mDNS) and nss-mdns (a libc NSS plugin, providing name resolution via mDNS). Finally there is the D-Bus interface which provides a rich object oriented interface to D-Bus enabled applications.

Upon startup avahi-daemon interprets its configuration file /etc/avahi/avahi-daemon.conf and reads XML fragments from /etc/avahi/services/*.service which may define static DNS-SD services. If you enable publish-resolv-conf-dns-servers in avahi-daemon.conf the file /etc/resolv.conf will be read, too.

## OPTIONS
-f | --file= FILE

Specify the configuration file to read. (default: /etc/avahi/avahi-daemon.conf)

-D | --daemonize

Daemonize after startup. Implies --syslog.

-s | --syslog

Log to syslog instead of STDERR. Implied by --daemonize.

--debug

Increase verbosity to debug level.

--no-rlimits

Don't enforce resource limits as specified in the configuration file. (See setrlimit(2) for more information)

--no-drop-root

Don't drop root privileges after startup and don't require daemon to be started as root. We recommend not to use this option.

--no-chroot

Don't chroot(2) the daemon. This option is only available when compiled with chroot() support.

--no-proc-title

Don't change the process name while running. Unless this option is specified avahi-daemon will reflect its current state and the selected host name in the process title.

-k | --kill

Kill an already running avahi-daemon. (equivalent to sending a SIGTERM)

-r | --reload

Tell an already running avahi-daemon to reread /etc/resolv.conf (in case you enabled publish-resolv-conf-dns-servers in avahi-daemon.conf) and the files from /etc/avahi/services/. Please note that this will not reload the /etc/avahi/avahi-daemon.conf. (equivalent to sending a SIGHUP)

-c | --check

Return 0 as return code when avahi-daemon is already running.

-h | --help

Show help

-v | --version

Show version information

## FILES
/etc/avahi/avahi-daemon.conf: the default configuration file for avahi-daemon, see avahi-daemon.conf(5) for more information.

/etc/avahi/hosts: additional static hostname mappings to publish in mDNS, see avahi.hosts(5) for more information.

/etc/avahi/services/*.service: static service definitions, see avahi.service(5) for more information.

## SIGNALS
SIGINT, SIGTERM: avahi-daemon will shutdown. (Same as --kill).

SIGHUP: avahi-daemon will reload unicast DNS server data from /etc/resolv.conf and static service definitions from /etc/avahi/services/. (Same as --reload)

SIGUSR1: avahi-daemon will dump local and remote cached resource record data to syslog.

## AUTHORS
The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from http://avahi.org/

## SEE ALSO
avahi-daemon.conf(5), avahi.hosts(5), avahi.service(5), avahi-dnsconfd(8), avahi-set-host-name(1)

http://avahi.org/wiki/AvahiAndUnicastDotLocal documents the problems when using Avahi in a unicast DNS zone .local.

## COMMENTS
This man page was written using xml2man(1) by Oliver Kurth.


avahi-dnsconfd

package: avahi-dnsconfd

title: avahi-dnsconfd(8)

text:
# avahi-dnsconfd(8)

## NAME
avahi-dnsconfd - Unicast DNS server from mDNS/DNS-SD configuration daemon

## SYNOPSIS
avahi-dnsconfd [options]

avahi-dnsconfd --kill

avahi-dnsconfd --refresh

avahi-dnsconfd --check

## DESCRIPTION
avahi-dnsconfd connects to a running avahi-daemon and runs the script /etc/avahi/avahi-dnsconfd.action for each unicast DNS server that is announced on the local LAN. This is useful for configuring unicast DNS servers in a DHCP-like fashion with mDNS.

## OPTIONS
-D | --daemonize

Daemonize after startup and redirect log messages to syslog.

-s | --syslog

Log to syslog instead of STDERR. Implied by --daemonize.

-k | --kill

Kill an already running avahi-dnsconfd. (equivalent to sending a SIGTERM)

-r | --refresh

Tell an already running avahi-dnsconfd to refresh the DNS server data. (equivalent to sending a SIGHUP)

-c | --check

Return 0 as return code when avahi-dnsconfd is already running.

-h | --help

Show help

-v | --version

Show version information

## FILES
/etc/avahi/avahi-dnsconfd.action: the script to run when a DNS server is found or removed.

## SIGNALS
SIGINT, SIGTERM: avahi-dnsconfd will shutdown. This is issued by passing --kill to avahi-daemon.

SIGHUP: avahi-dnsconfd will refresh the DNS server data.

## AUTHORS
The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from http://avahi.org/

## SEE ALSO
avahi-daemon(8), avahi-dnsconfd.action(8)

## COMMENTS
This man page was written using xml2man(1) by Oliver Kurth.


avahi-dnsconfd.action

title: avahi-dnsconfd.action(8)

summary: avahi-dnsconfd action script

text:
# avahi-dnsconfd.action(8)

## NAME
avahi-dnsconfd.action - avahi-dnsconfd action script

## SYNOPSIS
/etc/avahi/avahi-dnsconfd.action

## DESCRIPTION
avahi-dnsconfd.action is the action script that is called whenever a new unicast DNS server is found or removed by avahi-dnsconfd. The default script as shipped with avahi patches /etc/resolv.conf to reflect the changed unicast DNS server configuration.

## PARAMETERS
argv[1] Contains the character "+" if the DNS server is new, "-" when it shall be removed from the DNS server list.

argv[2] The IP address of the DNS server.

argv[3] Numerical network interface number this DNS server was found on.

argv[4] Numerical protocol number this DNS server was found on. (usually 2 for IPv4 and 10 for IPv6)

## ENVIRONMENT
AVAHI_INTERFACE Contains the textual interface name the corresponds with argv[3]. (e.g. "eth0")

AVAHI_INTERFACE_DNS_SERVERS Contains a list of all DNS servers that avahi-dnsconfd found on the interface $AVAHI_INTERFACE, separated by spaces.

AVAHI_DNS_SERVERS Contains a list of all DNS server that avahi-dnsconfd found on all interfaces, separated by spaces.

## AUTHORS
The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from http://avahi.org/

## SEE ALSO
avahi-dnsconfd(8), avahi-daemon(8)

## COMMENTS
This man page was written using xml2man(1) by Oliver Kurth.


ayatana-settings

package: ayatana-settings

title: ayatana-settings(8)

text:
# ayatana-settings(8)

## NAME
ayatana-settings - Fine-tune behaviour of Ayatana System Indicators

## SYNOPSIS

ayatana-settings

[ options ]

## DESCRIPTION
Ayatana (System) Indicators are a set of notification tray icons that are available for desktop environments that provide an Indicator Renderer applet. With Ayatana System Indicators users can get easy access to various system properties and settings (e.g. sound, events, messages and notifications, session management, bluetooth, etc.).

ayatana-settings is a graphical tool supplementing the desktop environment's control center / settings area and allows the user to fine-tune the behaviour of Ayatana System Indicators.

## COMMON OPTIONS
ayatana-settings does not have any command line options (except those provided by standard GTK applications).

## FILES
~/.config/autostart/ayatana-indicator-*.desktop

## AUTHOR
This manual has been written for the Ayatana Indicators project by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>.


bacula-fd

title: bacula-fd(8)

summary: Bacula's File Daemon

text:
# bacula-fd(8)

## NAME
bacula-fd - Bacula's File Daemon

## SYNOPSIS
bacula-fd [options]

## DESCRIPTION
This manual page documents briefly the bacula command.

Bacula's File Daemon acts as the interface between the Bacula network backup system and the filesystems to be backed up: it is responsible for reading/writing/verifying the files to be backup'd/verified/restored. Network transfer can optionally be compressed.

## OPTIONS
-c file

Specify the configuration file to use.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output.

-T

Send debug messages to the trace file.

-f

Run in foreground (for debugging).

-g group

Set the group/gid to run as.

-k

Keep readall permission when dropping privileges.

-m

Print kaboom output (for debugging).

-P

Do not create a PID file.

-s

No signals (for debugging).

-t

Test the configuration file and report errors.

-u user

Set the username/uid to run as.

-v

Set verbose mode.

-?

Show version and usage of program.

## SEE ALSO
bacula-dir(8), bacula-sd(8).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bacula

title: bacula(8)

summary: The Network Backup Solution

text:
# bacula(8)

## NAME
Bacula - The Network Backup Solution

## SYNOPSIS
bacula-dir - Director

bacula-fd - File daemon or Client

bacula-sd - Storage daemon

bconsole - Console to control Bacula

## DESCRIPTION
Bacula is a set of computer programs that permits you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. In technical terms, it is a network Client/Server based backup program. Bacula is relatively easy to use and efficient, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. Due to its modular design, Bacula is scalable from small single computer systems to systems consisting of hundreds of computers located over a large network.

Bacula Director service consists of the program that supervises all the backup, restore, verify and archive operations. The system administrator uses the Bacula Director to schedule backups and to recover files. For more details see the Director Services Daemon Design Document in the Bacula Developer's Guild. The Director runs as a daemon or a service (i.e. in the background).

Bacula Console services is the program that allows the administrator or user to communicate with the Bacula Director (see above). Currently, the Bacula Console is available in two versions. The first and simplest is to run the Console program in a shell window (i.e. TTY interface). Most system administrators will find this completely adequate. The second version is a Qt 4.2 GUI interface named bat that has more features than the bconsole program.

Bacula File services (or Client program) is the software program that is installed on the machine to be backed up. It is specific to the operating system on which it runs and is responsible for providing the file attributes and data when requested by the Director. The File services are also responsible for the file system dependent part of restoring the file attributes and data during a recovery operation. For more details see the File Services Daemon Design Document in the Bacula Developer's Guide. This program runs as a daemon on the machine to be backed up, and in some of the documentation, the File daemon is referred to as the Client (for example in Bacula's configuration file). In addition to Unix/Linux File daemons, there is a Windows File daemon (normally distributed in binary format). The Windows File daemon runs on all currently known Windows versions (2K, 2003, XP, and Vista).

Bacula Storage services consist of the software programs that perform the storage and recovery of the file attributes and data to the physical backup media or volumes. In other words, the Storage daemon is responsible for reading and writing your tapes (or other storage media, e.g. files). For more details see the Storage Services Daemon Design Document in the Bacula Developer's Guide. The Storage services runs as a daemon on the machine that has the backup device (usually a tape drive).

Catalog services are comprised of the software programs responsible for maintaining the file indexes and volume databases for all files backed up. The Catalog services permit the System Administrator or user to quickly locate and restore any desired file. The Catalog services sets Bacula apart from simple backup programs like tar and bru, because the catalog maintains a record of all Volumes used, all Jobs run, and all Files saved, permitting efficient restoration and Volume management. Bacula currently supports three different databases, MySQL, PostgreSQL, and SQLite3, one of which must be chosen when building Bacula.

## OPTIONS
See the HTML/PDF documentation at:

<http://www.bacula.org>

for details of the command line options.

## CONFIGURATION
Each daemon has its own configuration file which must be tailored for each particular installation. Please see the HTML/PDF documentation for the details.

## SEE ALSO
The HTML manual installed on your system (typically found in

/usr/share/doc/bacula-<version>) or the online manual at:

<http://www.bacula.org>

## BUGS
See <http://bugs.bacula.org>

## AUTHOR
Kern Sibbald

### Current maintainer
Kern Sibbald

### Contributors
An enormous list of past and former persons who have devoted their time and energy to this project -- thanks. See the AUTHORS file in the main Bacula source directory.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bconsole

title: bconsole(8)

summary: Bacula's management Console

text:
# bconsole(8)

## NAME

bconsole - Bacula's management Console

## SYNOPSIS
bconsole [options]

## DESCRIPTION
This manual page documents briefly the bconsole command.

## OPTIONS
-D dir

Select a Director.

-l

List defined Directors.

-c config

Specify configuration file.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output.

-n

No conio (for scripting).

-s

No signals (for debugging).

-u nn

Set command execution timeout to nn seconds.

-t

Test the configuration file and report errors.

-?

Show version and usage of program.

## SEE ALSO
bacula-dir(8), bls(1), bextract(1).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


btraceback

title: btraceback(8)

summary: wrapper script around gdb and bsmtp

text:
# btraceback(8)

## NAME

btraceback - wrapper script around gdb and bsmtp

## SYNOPSIS
btraceback /path/to/binary pid

## DESCRIPTION
btraceback is a wrapper shell script around the gdb debugger (or dbx on Solaris systems) and bsmtp, provided for debugging purposes.

## USAGE
btraceback is called by the exception handlers of the Bacula daemons during a crash. It can also be called interactively to view the current state of the threads belonging to a process, but this is not recommended unless you are trying to debug a problem (see below).

## NOTES
In order to work properly, debugging symbols must be available to the debugger on the system, and gdb, or dbx (on Solaris systems) must be available in the $PATH.

If the Director or Storage daemon runs under a non-root uid, you will probably need to be modify the btraceback script to elevate privileges for the call to gdb/dbx, to ensure it has the proper permissions to debug when called by the daemon.

Although Bacula's use of btraceback within its exception handlers is always safe, manual or interactive use of btraceback is subject to the same risks than live debugging of any program, which means it could cause Bacula to crash under rare and abnormal circumstances. Consequently we do not recommend manual use of btraceback in production environments unless it is required for debugging a problem.

## ENVIRONMENT
btracback relies on $PATH to find the debugger.

## FILES
/usr/lib/bacula/btraceback

The script itself.

/usr/sbin/btraceback

symbolic link to /usr/lib/bacula/btraceback

/etc/bacula/scripts/btraceback.gdb

the GDB command batch used to output a stack trace

## AUTHOR
This manual page was written by Lucas B. Cohen <lbc@members.fsf.org>

## SEE ALSO
bsmtp(1) This man page document is released under the BSD 2-Clause license.


bacula-dir

title: bacula-dir(8)

summary: Bacula Director

text:
# bacula-dir(8)

## NAME
bacula-dir - Bacula Director

## SYNOPSIS
bacula-dir [options]

## DESCRIPTION
This manual page documents briefly the bacula-dir command.

Bacula's Director Daemon acts as the controller of the network backup system: it is responsible for scheduling and coordinating backups across the network.

## OPTIONS
-c file

Specify the configuration file to use.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output.

-T

Send debug messages to the trace file.

-f

Run in foreground (for debugging).

-g group

Set the group/gid to run as.

-m

Print kaboom output (for debugging).

-P

Do not create a PID file.

-r job

Run <job>.

-s

No signals (for debugging).

-t

Test the configuration file and report errors.

-u user

Set the username/uid to run as.

-v

Set verbose mode.

-?

Show version and usage of program.

## TCP-WRAPPERS CONFIGURATION
Tcpwrappers looks for the service name of the bacula daemons in hosts.allow , and the service names of these daemons is configured to be different from the binary. The service names are configured to be %hostname%-%component% rather than bacula-dir (As defined in the bacula-dir.conf.in file)

So the hosts.allow entry has to match %hostname%-%component% (servername-dir for example) instead of bacula-%component%

WARNING: This means that if the hosts.allow file has the entry:

bacula-dir: ALL

you will not be able to run bconsole to connect to the local director!

The entry would have to read:

server-dir: ALL

and this will allow the console to connect to the director. (The process running is bacula-dir.)

## SEE ALSO
bacula-fd(8), bacula-sd(8).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bcopy

title: bcopy(8)

summary: Bacula's 'Copy from tape'

text:
# bcopy(8)

## NAME

bcopy - Bacula's 'Copy from tape'

## SYNOPSIS
bcopy [options] input-archive output-archive

## DESCRIPTION
This manual page documents briefly the bcopy command.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-b bootstrap

Specify a bootstrap file.

-c config

Specify configuration file.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output.

-i input

Specify input Volume names (separated by '|')

-o output

Specify output Volume names (separated by '|')

-p

Proceed in spite of I/O errors.

-w directory

Specify working directory (default /tmp).

-v

Set verbose mode.

## SEE ALSO
bls(1), bextract(1).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bregex

title: bregex(8)

summary: Bacula's 'regex' engine

text:
# bregex(8)

## NAME

bregex - Bacula's 'regex' engine

## SYNOPSIS
bregex [options] -f <data-file>

## DESCRIPTION
This manual page documents briefly the bregex command.

This program can be useful for testing regex expressions to be applied against a list of filenames.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output

-f <data-file>

The data-file is a filename that contains lines of data to be matched (or not) against one or more patterns. When the program is run, it will prompt you for a regular expression pattern, then apply it one line at a time against the data in the file. Each line that matches will be printed preceded by its line number. You will then be prompted again for another pattern.

-n

Print lines that do not match

-l

Suppress lines numbers.

## SEE ALSO
regex(7)

## AUTHOR
This manual page was written by Bruno Friedmann <bruno@ioda-net.ch>. This man page document is released under the BSD 2-Clause license.


bscan

title: bscan(8)

summary: Bacula's 'Scan tape'

text:
# bscan(8)

## NAME

bscan - Bacula's 'Scan tape'

## SYNOPSIS
bscan [options] bacula-archive

## DESCRIPTION
The purpose of bscan is to read (scan) a Bacula Volume and to recreate or update the database contents with the information found on the Volume. This is done in a non-destructive way. This permits restoring database entries that have been lost by pruning, purging, deleting, or a database corruption problem.

Normally, it should not be necessary to run the bscan command because the database is self maintaining, and most corrupted databases can be repaired by the tools provided by the database vendors. In addition, if you have maintained bootstrap files during backups, you should be able to recover all your data from the bootstrap file without needed an up to date catalog.

bscan command.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-b bootstrap

Specify a bootstrap file.

-c config

Specify configuration file.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output.

-m

Update media info in database.

-D

Specify the driver database name (default: NULL)

-n name

Specify the database name (default: bacula)

-u username

Specify database username (default: bacula)

-P password

Specify database password (default: none)

-h host

Specify database host (default: NULL)

-t port

Specify database port (default: 0)

-p

Proceed in spite of I/O errors.

-r

List records.

-s

Synchronize or store in Database.

-S

Show scan progress periodically.

-v

Verbose output mode.

-V volume

Specify volume names (separated by '|')

-w dir

Specify working directory (default from conf file)

## SEE ALSO
bls(8), bextract(8).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>, for the Debian GNU/Linux system (but may be used by others).

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bwild

title: bwild(8)

summary: Bacula's 'wildcard' engine

text:
# bwild(8)

## NAME

bwild - Bacula's 'wildcard' engine

## SYNOPSIS
bwild [options] -f <data-file>

## DESCRIPTION
This manual page documents briefly the bwild command.

This is a simple program that will allow you to test wild-card expressions against a file of data.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output

-f <data-file>

The data-file is a filename that contains lines of data to be matched (or not) against one or more patterns. When the program is run, it will prompt you for a wild-card pattern, then apply it one line at a time against the data in the file. Each line that matches will be printed preceded by its line number. You will then be prompted again for another pattern.

Enter an empty line for a pattern to terminate the program. You can print only lines that do not match by using the -n option, and you can suppress printing of line numbers with the -l option.

-n

Print lines that do not match

-l

Suppress lines numbers.

-i

use case insensitive match.

## SEE ALSO
fnmatch(3)

## AUTHOR
This manual page was written by Bruno Friedmann <bruno@ioda-net.ch>. This man page document is released under the BSD 2-Clause license.


dbcheck

title: dbcheck(8)

text:
# dbcheck(8)

## NAME

dbcheck - Bacula's Catalog Database Check/Clean program

## SYNOPSIS
dbcheck [options] working-directory bacula-database user password [dbhost] [dbport]

## DESCRIPTION
This manual page documents briefly the dbcheck command.

dbcheck will not repair your database if it is broken. Please see your vendor's instructions for fixing broken database.

dbcheck is a simple program that will search for logical inconsistencies in the Bacula tables in your database, and optionally fix them. It is a database maintenance routine, in the sense that it can detect and remove unused rows, but it is not a database repair routine. To repair a database, see the tools furnished by the database vendor. Normally dbcheck should never need to be run, but if Bacula has crashed or you have a lot of Clients, Pools, or Jobs that you have removed, it could be useful.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-b

If specified, dbcheck will run in batch mode, and it will proceed to examine and fix (if -f is set) all programmed inconsistency checks. By default, dbcheck will enter interactive mode (see below).

-C catalog

catalog name in the director conf file.

-c config

If the -c option is given with the Director's conf file, there is no need to enter any of the command line arguments, in particular the working directory as dbcheck will read them from the file.

-B

print catalog configuration and exit.

-d nn

set debug level to nn.

-dt

print timestamp in debug output.

-f

If specified, dbcheck will repair (fix) the inconsistencies it finds. Otherwise, it will report only.

-v

Set verbose mode.

## INTERACTIVE MODE
In interactive mode dbcheck will prompt with the following:

Hello, this is the database check/correct program. Please select the function you want to perform.

1) Toggle modify database flag

2) Toggle verbose flag

3) Repair bad Filename records

4) Repair bad Path records

5) Eliminate duplicate Filename records

6) Eliminate duplicate Path records

7) Eliminate orphaned Jobmedia records

8) Eliminate orphaned File records

9) Eliminate orphaned Path records

10) Eliminate orphaned Filename records

11) Eliminate orphaned FileSet records

12) Eliminate orphaned Client records

13) Eliminate orphaned Job records

14) Eliminate all Admin records

15) Eliminate all Restore records

16) All (3-15)

17) Quit Select function number:

By entering 1 or 2, you can toggle the modify database flag (-f option) and the verbose flag (-v). It can be helpful and reassuring to turn off the modify database flag, then select one or more of the consistency checks (items 3 through 9) to see what will be done, then toggle the modify flag on and re-run the check.

The inconsistencies examined are the following:

Duplicate filename records. This can happen if you accidentally run two

copies of Bacula at the same time, and they are both adding filenames

simultaneously. It is a rare occurrence, but will create an

inconsistent database. If this is the case, you will receive error

messages during Jobs warning of duplicate database records. If you are

not getting these error messages, there is no reason to run this check.

Repair bad Filename records. This checks and corrects filenames that have

a trailing slash. They should not.

Repair bad Path records. This checks and corrects path names that do not

have a trailing slash. They should.

Duplicate path records. This can happen if you accidentally run two copies

of Bacula at the same time, and they are both adding filenames

simultaneously. It is a rare occurrence, but will create an

inconsistent database. See the item above for why this occurs and how

you know it is happening.

Orphaned JobMedia records. This happens when a Job record is deleted

(perhaps by a user issued SQL statement), but the corresponding JobMedia

record (one for each Volume used in the Job) was not deleted. Normally,

this should not happen, and even if it does, these records generally do

not take much space in your database. However, by running this check,

you can eliminate any such orphans.

Orphaned File records. This happens when a Job record is deleted (perhaps

by a user issued SQL statement), but the corresponding File record (one

for each Volume used in the Job) was not deleted. Note, searching for

these records can be very time consuming (i.e. it may take hours) for a

large database. Normally this should not happen as Bacula takes care to

prevent it. Just the same, this check can remove any orphaned File

records. It is recommended that you run this once a year since orphaned

File records can take a large amount of space in your database. You

might want to ensure that you have indexes on JobId, FilenameId, and

PathId for the File table in your catalog before running this command.

Orphaned Path records. This condition happens any time a directory is

deleted from your system and all associated Job records have been

purged. During standard purging (or pruning) of Job records, Bacula

does not check for orphaned Path records. As a consequence, over a

period of time, old unused Path records will tend to accumulate and use

space in your database. This check will eliminate them. It is

recommended that you run this check at least once a year.

Orphaned Filename records. This condition happens any time a file is

deleted from your system and all associated Job records have been

purged. This can happen quite frequently as there are quite a large

number of files that are created and then deleted. In addition, if you

do a system update or delete an entire directory, there can be a very

large number of Filename records that remain in the catalog but are no

longer used.

During standard purging (or pruning) of Job records, Bacula does not

check for orphaned Filename records. As a consequence, over a period of

time, old unused Filename records will accumulate and use space in your

database. This check will eliminate them. It is strongly recommended

that you run this check at least once a year, and for large database

(more than 200 Megabytes), it is probably better to run this once every

6 months.

Orphaned Client records. These records can remain in the database long

after you have removed a client.

Orphaned Job records. If no client is defined for a job or you do not run

a job for a long time, you can accumulate old job records. This option

allow you to remove jobs that are not attached to any client (and thus

useless).

All Admin records. This command will remove all Admin records,

regardless of their age.

All Restore records. This command will remove all Restore records,

regardless of their age.

By the way, I personally run dbcheck only where I have messed up my database due to a bug in developing Bacula code, so normally you should never need to run dbcheck inspite of the recommendations given above, which are given so that users don't waste their time running dbcheck too often.

## SEE ALSO
bls(1), bextract(1).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bacula-sd

title: bacula-sd(8)

summary: Bacula's Storage Daemon

text:
# bacula-sd(8)

## NAME
bacula-sd - Bacula's Storage Daemon

## SYNOPSIS
bacula-sd [options]

## DESCRIPTION
This manual page documents briefly the bacula-sd command.

Bacula's Storage Daemon acts as the interface between the Bacula network backup system and a tape drive/autochanger or filesystem where the backups will be stored.

## OPTIONS
-c file

Specify the configuration file to use.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output.

-T

Send debug messages to the trace file.

-f

Run in foreground (for debugging).

-g group

Set the group/gid to run as.

-P

Do not create a PID file.

-p

Proceed in spite of I/O errors

-m

Print kaboom output (for debugging)

-s

No signals (for debugging).

-t

Test the configuration file and report errors.

-u user

Set the username/uid to run as.

-v

Set verbose mode.

-?

Show version and usage of program.

## SEE ALSO
bacula-dir(8), bacula-fd(8).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bextract

title: bextract(8)

summary: Bacula's 'Extract from tape'

text:
# bextract(8)

## NAME

bextract - Bacula's 'Extract from tape'

## SYNOPSIS
bextract [options] bacula-archive-device-name output-directory

## DESCRIPTION
This manual page documents briefly the bextract command.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-b bootstrap

Specify a bootstrap file.

-c config

Specify configuration file.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output.

-e file

Specify exclude list.

-i file

Specify include list.

-p

Proceed in spite of I/O errors.

-t

Read data from volume, do not write anything

-v

Set verbose mode.

-V volume-name

Specify volume names.

## SEE ALSO
bls(1), bextract(1).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bls

title: bls(8)

summary: Bacula's 'Tape LS'

text:
# bls(8)

## NAME

bls - Bacula's 'Tape LS'

## SYNOPSIS
bls [options] <device-name>

## DESCRIPTION
This manual page documents briefly the bls command.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-b bootstrap

Specify a bootstrap file.

-c config

Specify configuration file.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output

-e <file>

Specify exclude list file.

-i <file>

Specify include list file.

-j

List jobs.

-k

List blocks.

(no -j or -k option)

List saved files

-L

Dump label.

-p

Proceed in spite of errors.

-V volumes

Specify volume names (separated by '|').

-v

Set verbose mode.

## SEE ALSO
bscan(8), bextract(8).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


btape

title: btape(8)

summary: Bacula's Tape interface test program

text:
# btape(8)

## NAME

btape - Bacula's Tape interface test program

## SYNOPSIS
btape [options] device-name

## DESCRIPTION
This manual page documents briefly the btape command.

## OPTIONS
A summary of options is included below.

-?

Show summary of options and commands.

-b bootstrap

Specify a bootstrap file.

-c config

Specify configuration file.

-d nn

Set debug level to nn.

-p

Proceed inspite of I/O errors.

-s

No signals (for debugging).

-v

Set verbose mode.

## COMMANDS
autochanger

test autochanger

bsf

backspace file

bsr

backspace record

cap

list device capabilities

clear

clear tape errors

eod

go to end of Bacula data for append

eom

go to the physical end of medium

fill

fill tape, write onto second volume

unfill

read filled tape

fsf

forward space a file

fsr

forward space a record

help

print this reference

label

write a Bacula label to the tape

load

load a tape

quit

quit btape

rawfill

use write() to fill tape

readlabel

read and print the Bacula tape label

rectest

test record handling functions

rewind

rewind the tape

scan

read() tape block by block to EOT and report

scanblocks

Bacula read block by block to EOT and report

status

print tape status

test

General test Bacula tape functions

weof

write an EOF on the tape

wr

write a single Bacula block

rr

read a single record

rb

read a single bacula block

qfill

quick fill command

## SEE ALSO
bscan(1), bextract(1).

## AUTHOR
This manual page was written by Jose Luis Tallon <jltallon@adv-solutions.net>.

## COPYRIGHT
This man page document is released under the BSD 2-Clause license.


bbconsjson

title: bbconsjson(8)

summary: Bacula's JSON configuration export tool

text:
# bbconsjson(8)

## NAME

bbconsjson - Bacula's JSON configuration export tool

## SYNOPSIS
bbconsjson [options]

## DESCRIPTION
This manual page documents briefly the bbconsjson command.

This is a simple program that will allow you to dump the Bacula Console configuration in JSON format.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output

-r <res>

Get resource type

-n <name>

Get resource name

-l <dirs>

Get only directives matching dirs (use with -r)

-D

Get only data

-R

Do not apply JobDefs to Job

-c <file>

Set configuration file to file

-d <nn>

Set debug level to <nn>

-dt

Print timestamp in debug output

-t

Read configuration and exit

-s

Output in show text format

-v

Verbose user messages

## AUTHOR
This manual page was written by Eric Bollengier <eric@baculasystems.com>. This man page document is released under the BSD 2-Clause license.


bdirjson

title: bdirjson(8)

summary: Bacula's JSON configuration export tool

text:
# bdirjson(8)

## NAME

bdirjson - Bacula's JSON configuration export tool

## SYNOPSIS
bdirjson [options]

## DESCRIPTION
This manual page documents briefly the bdirjson command.

This is a simple program that will allow you to dump the Bacula Director configuration in JSON format.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output

-r <res>

Get resource type

-n <name>

Get resource name

-l <dirs>

Get only directives matching dirs (use with -r)

-D

Get only data

-R

Do not apply JobDefs to Job

-c <file>

Set configuration file to file

-d <nn>

Set debug level to <nn>

-dt

Print timestamp in debug output

-t

Read configuration and exit

-s

Output in show text format

-v

Verbose user messages

## AUTHOR
This manual page was written by Eric Bollengier <eric@baculasystems.com>. This man page document is released under the BSD 2-Clause license.


bfdjson

title: bfdjson(8)

summary: Bacula's JSON configuration export tool

text:
# bfdjson(8)

## NAME

bfdjson - Bacula's JSON configuration export tool

## SYNOPSIS
bfdjson [options]

## DESCRIPTION
This manual page documents briefly the bfdjson command.

This is a simple program that will allow you to dump the Bacula File Daemon configuration in JSON format.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output

-r <res>

Get resource type

-n <name>

Get resource name

-l <dirs>

Get only directives matching dirs (use with -r)

-D

Get only data

-R

Do not apply JobDefs to Job

-c <file>

Set configuration file to file

-d <nn>

Set debug level to <nn>

-dt

Print timestamp in debug output

-t

Read configuration and exit

-s

Output in show text format

-v

Verbose user messages

## AUTHOR
This manual page was written by Eric Bollengier <eric@baculasystems.com>. This man page document is released under the BSD 2-Clause license.


bsdjson

title: bsdjson(8)

summary: Bacula's JSON configuration export tool

text:
# bsdjson(8)

## NAME

bsdjson - Bacula's JSON configuration export tool

## SYNOPSIS
bsdjson [options]

## DESCRIPTION
This manual page documents briefly the bsdjson command.

This is a simple program that will allow you to dump the Bacula Storage Daemon configuration in JSON format.

## OPTIONS
A summary of options is included below.

-?

Show version and usage of program.

-d nn

Set debug level to nn.

-dt

Print timestamp in debug output

-r <res>

Get resource type

-n <name>

Get resource name

-l <dirs>

Get only directives matching dirs (use with -r)

-D

Get only data

-R

Do not apply JobDefs to Job

-c <file>

Set configuration file to file

-d <nn>

Set debug level to <nn>

-dt

Print timestamp in debug output

-t

Read configuration and exit

-s

Output in show text format

-v

Verbose user messages

## AUTHOR
This manual page was written by Eric Bollengier <eric@baculasystems.com>. This man page document is released under the BSD 2-Clause license.


bcache-status

package: bcache-status

title: bcache-status(8)

summary: Display useful bcache statistics

text:
# bcache-status(8)

## NAME
bcache-status - Display useful bcache statistics

## SYNOPSIS
bcache-status [ --help ] [ -f ] [ -h ] [ -d ] [ -t ] [ -a ] [ -r ] [ -s ] [ -g ]

## DESCRIPTION
This command displays useful bcache statistics in a convenient way.

## OPTIONS
--help

Print help message and exit.

-f, --five-minute

Print the last five minutes of stats.

-h, --hour

Print the last hour of stats.

-d, --day

Print the last day of stats.

-t, --total

Print total stats.

-a, --all

Print all stats.

-r, --reset-stats

Reset stats after printing them.

-s, --sub-status

Print subdevice status.

-g, --gc

Invoke GC before printing status (root only).


bcache-super-show

package: bcache-tools

title: bcache-super-show(8)

summary: Print the bcache superblock

text:
# bcache-super-show(8)

## NAME
bcache-super-show - Print the bcache superblock

## SYNOPSIS
bcache-super-show [ -f] device

## OPTIONS
-f

Keep going if the superblock crc is invalid


make-bcache

title: make-bcache(8)

summary: create a cache device

text:
# make-bcache(8)

## NAME
make-bcache - create a cache device

## SYNOPSIS
make-bcache [ -U UUID ] [ -b bucket-size ] device

## OPTIONS
-C

Create a cache

-B

Create a backing device (kernel functionality not yet implemented)

-U UUID

Create a cache device with the specified UUID

-b bucket-size

Specifies the bucket size. Allocation is done in terms of buckets, and cache hits are counted per bucket; thus a smaller bucket size will give better cache utilization, but poorer write performance. The bucket size is intended to be equal to the size of your SSD's erase blocks, which seems to be 128k-512k for most SSDs. Must be a power of two; accepts human readable units. Defaults to 128k.


probe-bcache

title: probe-bcache(8)

summary: probe a bcache device

text:
# probe-bcache(8)

## NAME
probe-bcache - probe a bcache device

## SYNOPSIS
probe-bcache [ -o udev ] device

## OPTIONS
-o

return UUID in udev style for invocation by udev rule as IMPORT{program}

## USAGE
Return UUID if device identified as bcache-formatted.

Only necessary until support for the bcache superblock is included in blkid; in the meantime, provides just enough functionality for a udev script to create the /dev/disk/by-uuid symlink.


bcachefs

package: bcachefs-tools

title: bcachefs(8)

summary: manage bcachefs filesystems/devices

text:
# bcachefs(8)

## NAME
bcachefs — manage bcachefs filesystems/devices

## SYNOPSIS
bcachefs

command [options] [arguments]

## DESCRIPTION
The bcachefs utility supports the following subcommands, which are documented in detail below:

### Superblock commands
format

Format one or a list of devices with bcachefs data structures.

show-super

Dump superblock information to stdout.

set-option

Set a filesystem option

### Mount commands
mount

Mount a filesystem.

### Repair commands
fsck

Check an existing filesystem for errors.

### Commands for managing a running filesystem
fs usage

Show disk usage

### Commands for managing devices within a running filesystem
device add

Add a new device to an existing filesystem

device remove

Remove a device from an existing filesystem

device online

Re-add an existing member to a filesystem

device offline

Take a device offline, without removing it

device evacuate

Migrate data off of a specific device

device set-state

Mark a device as failed

device resize

Resize filesystem on a device

device resize-journal

Resize journal on a device

### Commands for managing subvolumes and snapshots
subvolume create

Create a new subvolume

subvolume delete

Delete an existing subvolume

subvolume snapshot

Create a snapshot

### Commands for managing filesystem data
data rereplicate

Rereplicate degraded data

data job

Kick off low level data jobs

### Commands for encryption
unlock

Unlock an encrypted filesystem prior to running/mounting

set-passphrase

Change passphrase on an existing (unmounted) filesystem

remove-passphrase

Remove passphrase on an existing (unmounted) filesystem

### Commands for migration
migrate

Migrate an existing filesystem to bcachefs, in place

migrate-superblock

Add default superblock, after bcachefs migrate

### Commands for operating on files in a bcachefs filesystem
setattr

Set various per file attributes

### Commands for debugging
dump

Dump filesystem metadata to a qcow2 image

list

List filesystem metadata in textual form

list_journal

List contents of journal

### FUSE commands
fusemount Mount a filesystem via FUSE

### Miscellaneous commands
version

Display the version of the invoked bcachefs tool

completions

Generate shell completions

## Superblock commands
bcachefs format [options] devices ...

Format one or a list of devices with bcachefs data structures. You need to do this before you create a volume. Device specific options must come before corresponding devices, e.g.

bcachefs format --label=ssd /dev/sda --label=hdd /dev/sdb

--block_size=size

block size, in bytes (e.g. 4k)

--btree_node_size=size

Btree node size, default 256k

--errors=(continue | ro | panic)

Action to take on filesystem error

--data_replicas=number

Number of data replicas

--metadata_replicas=number

Number of metadata replicas

--data_replicas_required=number

--metadata_replicas_required=number

--encoded_extent_max=size

Maximum size of checksummed/compressed extents

--metadata_checksum=(none | crc32c | crc64 | xxhash)

Set metadata checksum type (default: crc32c).

--data_checksum=(none | crc32c | crc64 | xxhash)

Set data checksum type (default: crc32c).

--compression=(none | lz4 | gzip | zstd)

Set compression type (default: none).

--background_compression=(none | lz4 | gzip | zstd)

--str_hash=(crc32c | crc64 | siphash)

Hash function for directory entries and xattrs

--metadata_target=target

Device or label for metadata writes

--foreground_target=target

Device or label for foreground writes

--background_target=target

Device or label to move data to in the background

--promote_target=target

Device or label to promote data to on read

--erasure_code

Enable erasure coding (DO NOT USE YET)

--inodes_32bit

Constrain inode numbers to 32 bits

--shared_inode_numbers

Shared new inode numbers by CPU id

--inodes_use_key_cache

Use the btree key cache for the inodes btree

--gc_reserve_percent=percentage

Percentage of disk space to reserve for copygc

--gc_reserve_bytes=percentage

Amount of disk space to reserve for copygc This takes precedence over gc_reserve_percent if set

--root_reserve_percent=percentage

Percentage of disk space to reserve for superuser

--wide_macs

Store full 128bits of cryptographic MACS, instead of 80

--acl

Enable POSIX acls

--usrquota

Enable user quotas

--grpquota

Enable group quotas

-prjquota

Enable project quotas

--journal_transaction_names

Log transaction function names in journal

--nocow

Nocow mode: Writes will be done in place when possible. Snapshots and reflink will still caused writes to be COW.

This flag implicitly disables data checksumming, compression and encryption.

--replicas=number

Sets both data and metadata replicas

--encrypted

Enable whole filesystem encryption (chacha20/poly1305); passphrase will be prompted for.

--no_passphrase

Don't encrypt master encryption key

-L, --fs_label=label

Create the filesystem with the specified label

-U, --uuid=uuid

Create the filesystem with the specified uuid

--superblock_size=size

Device specific options:

--discard

Enable discard/TRIM support

--fs_size=size

Create the filesystem using size bytes on the subsequent device.

--bucket=size

Specifies the bucket size; must be greater than the btree node size

--durability=n

Data written to this device will be considered to have already been replicated n times

-l, --label

Disk label

-f, --force

Force the filesystem to be created, even if the device already contains a filesystem.

-q, --quiet

Only print errors

-v, --verbose

Verbose filesystem initialization

bcachefs show-super [options] device

Dump superblock information to stdout. -f, --fields=fields

List of sections to print

-l, --layout

Print superblock layout

bcachefs set-option [options] device

--errors=(continue | ro | panic)

Action to take on filesystem error

--metadata_replicas=number

Number of metadata replicas

--data_replicas=number

Number of data replicas

--metadata_replicas_required=number

--data_replicas_required=number

--metadata_checksum=(none | crc32c | crc64 | xxhash)

Set metadata checksum type (default: crc32c).

--data_checksum=(none | crc32c | crc64 | xxhash)

Set data checksum type (default: crc32c).

--compression=(none | lz4 | gzip | zstd)

Set compression type (default: none).

--background_compression=(none | lz4 | gzip | zstd)

--str_hash=(crc32c | crc64 | siphash)

Hash function for directory entries and xattrs

--metadata_target=target

Device or label for metadata writes

--foreground_target=target

Device or label for foreground writes

--background_target=target

Device or label to move data to in the background

--promote_target=target

Device or label to promote data to on read

--erasure_code

Enable erasure coding (DO NOT USE YET)

--inodes_32bit

Constrain inode numbers to 32 bits

--shared_inode_numbers

Shared new inode numbers by CPU id

--inodes_use_key_cache

Use the btree key cache for the inodes btree

--gc_reserve_percent=percentage

Percentage of disk space to reserve for copygc

--gc_reserve_bytes=percentage

Amount of disk space to reserve for copygc This takes precedence over gc_reserve_percent if set

--root_reserve_percent=percentage

Percentage of disk space to reserve for superuser

--wide_macs

Store full 128bits of cryptographic MACS, instead of 80

--acl

Enable POSIX acls

--usrquota

Enable user quotas

--grpquota

Enable group quotas

--prjquota

Enable project quotas

--degraded

Allow mounting in degraded mode

--very_degraded

Allow mounting in when data will be missing

--discard

Enable discard/TRIM support

--verbose

Extra debugging information during mount/recovery

--journal_flush_delay=ms

Delay in milliseconds before automatic journal commits

--journal_flush_disabled

Disable journal flush on sync/fsync If enabled, writes can be lost, but only since the last journal write (default 1 second)

--journal_reclaim_delay=ms

Delay in milliseconds before automatic journal reclaim

--move_bytes_in_flight=bytes

Maximum Amount of IO to keep in flight by the move path

--move_ios_in_flight=number

Maximum number of IOs to keep in flight by the move path

--fsck

Run fsck on mount

--fix_errors=error

Fix errors during fsck without asking

--ratelimit_errors

Ratelimit error messages during fsck

--nochanges

Super read only mode - no writes at all will be issued, even if we have to replay the journal

--norecovery

Don't replay the journal

--journal_transaction_names

Log transaction function names in journal

--noexcl

Don't open device in exclusive mode

--direct_io

Use O_DIRECT (userspace only)

--sb=offset

Sector offset of superblock

--reconstruct_alloc

Reconstruct alloc btree

--version_upgrade=(compatible | incompatible | none)

Set superblock to latest version, allowing any new features to be used

--nocow

Nocow mode: Writes will be done in place when possible. Snapshots and reflink will still caused writes to be COW.

This flag implicitly disables data checksumming, compression and encryption.

--nocow_enabled

Enable nocow mode: enables runtime locking in data move path needed if nocow will ever be in use

--no_data_io

Skip submit_bio() for data reads and writes, for performance testing purposes

## Mount commands
bcachefs mount [options] device mountpoint

Mount a filesystem. The device can be a device, a colon-separated list of devices, or UUID=<UUID>. The mountpoint is the path where the filesystem should be mounted. If not set, then the filesystem won't actually be mounted but all steps preceding mounting the filesystem (e.g. asking for passphrase) will still be performed. -o options

Mount options provided as a comma-separated list. See user guide for complete list. degraded

Allow mounting with data degraded

verbose

Extra debugging info during mount/recovery

fsck

Run fsck during mount

fix_errors

Fix errors without asking during fsck

read_only

Mount in read only mode

version_upgrade

-k, --key-location=(fail | wait | ask)

Where the password would be loaded from. (default: ask). fail

don't ask for password, fail if filesystem is encrypted.

wait

wait for password to become available before mounting.

ask

prompt the user for password.

-c, --colorize=(true | false)

Force color on/off. Default: auto-detect TTY

-v

Be verbose. Can be specified more than once.

## Repair commands
bcachefs fsck [options] devices ...

Check an existing filesystem for errors. -p

Automatic repair (no questions)

-n

Don't repair, only check for errors

-y

Assume "yes" to all questions

-f

Force checking even if filesystem is marked clean

-r, --ratelimit_errors

Don't display more than 10 errors of a given type

-R, --reconstruct_alloc

Reconstruct the alloc btree

-v

Be verbose

## Commands for managing a running filesystem
bcachefs fs usage [options] [filesystem]

Show disk usage. -h, --human-readable

Print human readable sizes.

## Commands for managing devices within a running filesystem
bcachefs device add [options] device

Add a device to an existing filesystem. --fs_size=size

Size of filesystem on device

--bucket=size

Set bucket size

--discard

Enable discards

-l, --label=label

Disk label

-f, --force

Use device even if it appears to already be formatted

bcachefs device remove [options] device

Remove a device from a filesystem -f, --force

Force removal, even if some data couldn't be migrated

-F, --force-metadata

Force removal, even if some metadata couldn't be migrated

bcachefs device online device

Re-add a device to a running filesystem

bcachefs device offline device

Take a device offline, without removing it -f, --force

Force, if data redundancy will be degraded

bcachefs device evacuate device

Move data off of a given device

bcachefs device set-state [options] new-state device

new-state=(rw | ro | failed | spare)

-f, --force

Force, if data redundancy will be degraded

--force-if-data-lost

Force, if data will be lost

-o, --offline

Set state of an offline device

bcachefs device resize device [size]

Resize filesystem on a device

bcachefs device resize-journal device [size]

Resize journal on a device

## Commands for managing subvolumes and snapshots
subvolume create [options] path

Create a new subvolume

subvolume delete [options] path

Delete an existing subvolume

subvolume delete [options] source dest

Create a snapshot of source at dest. If specified, source must be a subvolume; if not specified the snapshot will be of the subvolume containing dest. -r

Make snapshot read-only

## Commands for managing filesystem data
bcachefs data rereplicate filesystem

Walks existing data in a filesystem, writing additional copies of any degraded data.

bcachefs data job job filesystem

Kick off a data job and report progress job is one of ( scrub | rereplicate | migrate | rewrite_old_nodes )

-b btree

Btree to operate on

-s inode:offset

Start position

-e inode:offset

End position

## Commands for encryption
bcachefs unlock device

Unlock an encrypted filesystem prior to running/mounting. -c

Check if a device is encrypted

-k=(session | user | user_session)

Keyring to add to (default: user)

bcachefs set-passphrase devices ...

Change passphrase on an existing (unmounted) filesystem.

bcachefs remove-passphrase devices ...

Remove passphrase on an existing (unmounted) filesystem.

## Commands for migration
bcachefs migrate [options] device

Migrate an existing filesystem to bcachefs -f fs

Root of filesystem to migrate

--encrypted

Enable whole filesystem encryption (chacha20/poly1305)

--no_passphrase

Don't encrypt master encryption key

-F

Force, even if metadata file already exists

bcachefs migrate-superblock [options] device

Create default superblock after migrating -d device

Device to create superblock for

-o offset

Offset of existing superblock

## Commands for operating on files in a bcachefs filesystem
bcachefs setattr [options] devices ...

--data_replicas=number

Number of data replicas

--data_checksum=(none | crc32c | crc64 | xxhash)

Set data checksum type (default: crc32c).

--compression=(none | lz4 | gzip | zstd)

Set compression type (default: none).

--background_compression=(none | lz4 | gzip | zstd)

--metadata_target=target

Device or label for metadata writes

--foreground_target=target

Device or label for foreground writes

--background_target=target

Device or label to move data to in the background

--promote_target=target

Device or label to promote data to on read

--erasure_code

Enable erasure coding (DO NOT USE YET)

--project

--nocow

Nocow mode: Writes will be done in place when possible.

## Commands for debugging
These commands work on offline, unmounted filesystems.

bcachefs dump [options] device

Dump filesystem metadata -o output

Required flag: Output qcow2 image(s)

-f, --force

Force; overwrite when needed

--nojournal

Don't dump entire journal, just dirty entries

bcachefs list [options] devices ...

List filesystem metadata to stdout -b (extents | inodes | dirents | xattrs)

Btree to list from. (default: extents)

-l, --level

Btree depth to descend to. ( 0 == leaves; default: 0)

-s inode:offset

Start position to list from

-e inode:offset

End position

-m, --mode (keys | formats | nodes | nodes-ondisk)

(default: keys)

-f

Check (fsck) the filesystem first

-c, --colorize=(true | false)

Force color on/off. Default: auto-detect TTY

-v

Verbose mode

bcachefs list_journal [options] devices ...

-a

Read entire journal, not just dirty entries

-n, --nr-entries=nr

Number of journal entries to print, starting from the most recent

-t, --transaction-filter=bbpos

Filter transactions not updating bbpos

-k, --key-filter=btree

Filter keys not updating btree

-v, --verbose

Verbose mode

## FUSE commands
bcachefs fusemount

Mount a filesystem via FUSE

## Miscellaneous commands
bcachefs completions shell

Generate shell completions

bcachefs version

Display the version of the invoked bcachefs tool

## EXIT STATUS
The bcachefs utility exits 0 on success, and >0 if an error occurs.


bcc-argdist

package: bcc-tools

title: bcc-argdist(8)

text:
# bcc-argdist(8)

## NAME
argdist - Trace a function and display a histogram or frequency count of its parameter values. Uses Linux eBPF/bcc.

## SYNOPSIS
argdist [-h] [-p PID] [-z STRING_SIZE] [-i INTERVAL] [-d DURATION] [-n COUNT] [-v] [-T TOP] [-H specifier] [-C specifier] [-I header] [-t TID]

## DESCRIPTION
argdist attaches to function entry and exit points, collects specified parameter values, and stores them in a histogram or a frequency collection that counts the number of times a parameter value occurred. It can also filter parameter values and instrument multiple entry points at once.

Since this uses BPF, only the root user can use this tool.

## REQUIREMENTS
CONFIG_BPF and bcc.

## OPTIONS
-h

Print usage message.

-p PID

Trace only functions in the process PID.

-t TID

Trace only functions in the thread TID.

-z STRING_SIZE

When collecting string arguments (of type char*), collect up to STRING_SIZE characters. Longer strings will be truncated.

-i INTERVAL

Print the collected data every INTERVAL seconds. The default is 1 second.

-d DURATION

Total duration of trace in seconds.

-n NUMBER

Print the collected data COUNT times and then exit.

-v

Display the generated BPF program, for debugging purposes.

-T TOP

When collecting frequency counts, display only the top TOP entries.

-H specifiers, -C specifiers

One or more probe specifications that instruct argdist which functions to probe, which parameters to collect, how to aggregate them, and whether to perform any filtering. See SPECIFIER SYNTAX below.

-I header

One or more header files that should be included in the BPF program. This enables the use of structure definitions, enumerations, and constants that are available in these headers. You should provide the same path you would include in the BPF program, e.g. 'linux/blkdev.h' or 'linux/time.h'. Note: in many cases, argdist will deduce the necessary header files automatically.

## SPECIFIER SYNTAX
The general specifier syntax is as follows:

{p,r,t,u}:{[library],category}:function(signature):type[,type...]:expr[,expr...][:filter]][#label]

{p,r,t,u}

Probe type - "p" for function entry, "r" for function return, "t" for kernel tracepoint, "u" for USDT probe; -H for histogram collection, -C for frequency count. Indicates where to place the probe and whether the probe should collect frequency count information, or aggregate the collected values into a histogram. Counting probes will collect the number of times every parameter value was observed, whereas histogram probes will collect the parameter values into a histogram. Only integral types can be used with histogram probes; there is no such limitation for counting probes.

[library]

Library containing the probe. Specify the full path to the .so or executable file where the function to probe resides. Alternatively, you can specify just the lib name: for example, "c" refers to libc. If no library name is specified, the kernel is assumed.

category

The category of the kernel tracepoint. For example: net, sched, block.

function(signature)

The function to probe, and its signature. The function name must match exactly for the probe to be placed. The signature, on the other hand, is only required if you plan to collect parameter values based on that signature. For example, if you only want to collect the first parameter, you don't have to specify the rest of the parameters in the signature. When capturing kernel tracepoints, this should be the name of the event, e.g. net_dev_start_xmit. The signature for kernel tracepoints should be empty. When capturing USDT probes, this should be the name of the probe, e.g. reloc_complete. The signature for USDT probes should be empty.

[type[,type...]]

The type(s) of the expression(s) to capture. This is the type of the keys in the histogram or raw event collection that are collected by the probes.

[expr[,expr...]]

The expression(s) to capture. These are the values that are assigned to the histogram or raw event collection. You may use the parameters directly, or valid C expressions that involve the parameters, such as "size % 10". Tracepoints may access a special structure called "args" that is formatted according to the tracepoint format (which you can obtain using tplist). For example, the block:block_rq_complete tracepoint can access args->nr_sector. USDT probes may access the arguments defined by the tracing program in the special arg1, arg2, ... variables. To obtain their types, use the tplist tool. Return probes can use the argument values received by the function when it was entered, through the $entry(paramname) special variable. Return probes can also access the function's return value in $retval, and the function's execution time in nanoseconds in $latency. Note that adding the $latency or $entry(paramname) variables to the expression will introduce an additional probe at the function's entry to collect this data, and therefore introduce additional overhead.

[filter]

The filter applied to the captured data. Only parameter values that pass the filter will be collected. This is any valid C expression that refers to the parameter values, such as "fd == 1 && length > 16". The $entry, $retval, and $latency variables can be used here as well, in return probes. The filter expression may also use the STRCMP pseudo-function to compare a predefined string to a string argument. For example: STRCMP("test.txt", file). The order of arguments is important: the first argument MUST be a quoted literal string, and the second argument can be a runtime string.

[label]

The label that will be displayed when printing the probed values. By default, this is the probe specifier.

## EXAMPLES
Print a histogram of allocation sizes passed to kmalloc:

\# argdist -H 'p::__kmalloc(u64 size):u64:size'

Print a count of how many times process 1005 called malloc with an allocation size of 16 bytes:

\# argdist -p 1005 -C 'p:c:malloc(size_t size):size_t:size:size==16'

Snoop on all strings returned by gets():

\# argdist -C 'r:c:gets():char*:$retval'

Print a histogram of read sizes that were longer than 1ms:

\# argdist -H 'r::__vfs_read(void *file, void *buf, size_t count):size_t:$entry(count):$latency > 1000000'

Print frequency counts of how many times writes were issued to a particular file descriptor number, in process 1005:

\# argdist -p 1005 -C 'p:c:write(int fd):int:fd'

Print a histogram of error codes returned by read() in process 1005:

\# argdist -p 1005 -H 'r:c:read()'

Print a histogram of buffer sizes passed to write() across all processes, where the file descriptor was 1 (STDOUT):

\# argdist -H 'p:c:write(int fd, const void *buf, size_t count):size_t:count:fd==1'

Count fork() calls in libc across all processes, grouped by pid:

\# argdist -C 'p:c:fork():int:$PID;fork per process'

Print histogram of number of sectors in completing block I/O requests:

\# argdist -H 't:block:block_rq_complete():u32:nr_sector'

Aggregate interrupts by interrupt request (IRQ):

\# argdist -C 't:irq:irq_handler_entry():int:irq'

Print the functions used as thread entry points and how common they are:

\# argdist -C 'u:pthread:pthread_start():u64:arg2' -p 1337

Print histograms of sleep() and nanosleep() parameter values:

\# argdist -H 'p:c:sleep(u32 seconds):u32:seconds' -H 'p:c:nanosleep(struct timespec *req):long:req->tv_nsec'

Spy on writes to STDOUT performed by process 2780, up to a string size of 120 characters:

\# argdist -p 2780 -z 120 -C 'p:c:write(int fd, char* buf, size_t len):char*:buf:fd==1'

Group files being read from and the read sizes from __vfs_read:

\# argdist -C 'p::__vfs_read(struct file *file, void *buf, size_t count):char*,size_t:file->f_path.dentry->d_iname,count:file->f_path.dentry->d_iname[0]!=0'

## SOURCE
This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

## OS
Linux

## STABILITY
Unstable - in development.

## AUTHOR
Sasha Goldshtein


bcc-bashreadline

title: bcc-bashreadline(8)

text:
# bcc-bashreadline(8)

## NAME
bashreadline - Print entered bash commands system wide. Uses Linux eBPF/bcc.

## SYNOPSIS
bashreadline [-h] [-s SHARED]

## DESCRIPTION
bashreadline traces the return of the readline() function using uprobes, to show the bash commands that were entered interactively, system wide. The entered command may fail: this is just showing what was entered.

This program is also a basic example of eBPF/bcc and uprobes.

This makes use of a Linux 4.4 feature (bpf_perf_event_output()); for kernels older than 4.4, see the version under tools/old, which uses an older mechanism

Since this uses BPF, only the root user can use this tool.

## REQUIREMENTS
CONFIG_BPF and bcc.

## OPTIONS
-h

Print usage message.

-s

Specify the location of libreadline.so shared library when you failed to run the script directly with error: "Exception: could not determine address of symbol ´readline´". Default value is /lib/libreadline.so.

## EXAMPLES
Trace bash commands system wide:

\# bashreadline

## FIELDS
TIME

Time of the command (HH:MM:SS).

PID

Process ID of the bash shell.

COMMAND

Entered command.

## OVERHEAD
As the rate of interactive bash commands is expected to be very low (<<100/s), the overhead of this program is expected to be negligible.

## SOURCE
This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

## OS
Linux

## STABILITY
Unstable - in development.

## AUTHOR
Brendan Gregg

## SEE ALSO
opensnoop(8)


bcc-bindsnoop

title: bcc-bindsnoop(8)

summary: Trace bind() system calls.

text:
# bcc-bindsnoop(8)

## NAME
bindsnoop - Trace bind() system calls.

## SYNOPSIS
bindsnoop [-h] [-w] [-t] [-p PID] [-P PORT] [-E] [-U] [-u UID] [--count] [--cgroupmap MAP] [--mntnsmap MNTNSMAP]

## DESCRIPTION
bindsnoop reports socket options set before the bind call that would impact this system call behavior.

## REQUIREMENTS
CONFIG_BPF and bcc.

## OPTIONS:
Show help message and exit:

-h, --help

Include timestamp on output:

-t, --timestamp

Wider columns (fit IPv6):

-w, --wide

Trace this PID only:

-p PID, --pid PID

Comma-separated list of ports to trace:

-P PORT, --port PORT

Trace cgroups in this BPF map:

--cgroupmap MAP

Trace mount namespaces in this BPF map:

--mntnsmap MNTNSMAP

Include errors in the output:

-E, --errors

Include UID on output:

-U, --print-uid

Trace this UID only:

-u UID, --uid UID

Count binds per src ip and port:

--count

## EXAMPLES:
Trace all IPv4 and IPv6 bind()s

bindsnoop

Include timestamps

bindsnoop -t

Trace PID 181

bindsnoop -p 181

Trace port 80

bindsnoop -P 80

Trace port 80 and 81

bindsnoop -P 80,81

Include UID

bindsnoop -U

Trace UID 1000

bindsnoop -u 1000

Report bind errors

bindsnoop -E

Count bind per src ip

bindsnoop --count

Trace IPv4 and IPv6 bind system calls and report socket options that would impact bind call behavior:

SOL_IP IP_FREEBIND F....

SOL_IP IP_TRANSPARENT .T...

SOL_IP IP_BIND_ADDRESS_NO_PORT ..N..

SOL_SOCKET SO_REUSEADDR ...R.

SOL_SOCKET SO_REUSEPORT ....r

SO_BINDTODEVICE interface is reported as "IF" index

## SOURCE
This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

## OS
Linux

## STABILITY
Unstable - in development.

## AUTHOR
Pavel Dubovitsky

## SEE ALSO
tcpaccept(8)


bcc-biolatency

title: bcc-biolatency(8)

text:
# bcc-biolatency(8)

## NAME
biolatency - Summarize block device I/O latency as a histogram.

## SYNOPSIS
biolatency [-h] [-F] [-T] [-Q] [-m] [-D] [-F] [-e] [-j] [-d DISK] [interval [count]]

## DESCRIPTION
biolatency traces block device I/O (disk I/O), and records the distribution of I/O latency (time). This is printed as a histogram either on Ctrl-C, or after a given interval in seconds.

The latency of disk I/O operations is measured from when requests are issued to the device up to completion. A -Q option can be used to include time queued in the kernel.

This tool uses in-kernel eBPF maps for storing timestamps and the histogram, for efficiency.

This works by tracing various kernel blk_*() functions using dynamic tracing, and will need updating to match any changes to these functions.

Since this uses BPF, only the root user can use this tool.

## REQUIREMENTS
CONFIG_BPF and bcc.

## OPTIONS
-h Print usage message.

-T

Include timestamps on output.

-m

Output histogram in milliseconds.

-D

Print a histogram per disk device.

-F

Print a histogram per set of I/O flags.

-j

Print a histogram dictionary

-e

Show extension summary(total, average)

-d DISK

Trace this disk only

interval

Output interval, in seconds.

count

Number of outputs.

## EXAMPLES
Summarize block device I/O latency as a histogram:

\# biolatency

Print 1 second summaries, 10 times:

\# biolatency 1 10

Print 1 second summaries, using milliseconds as units for the histogram, and

include timestamps on output: # biolatency -mT 1

Include OS queued time in I/O time:

\# biolatency -Q

Show a latency histogram for each disk device separately:

\# biolatency -D

Show a latency histogram in a dictionary format:

\# biolatency -j

Also show extension summary(total, average):

\# biolatency -e

## FIELDS
usecs

Microsecond range

msecs

Millisecond range

count

How many I/O fell into this range

distribution

An ASCII bar chart to visualize the distribution (count column)

## OVERHEAD
This traces kernel functions and maintains in-kernel timestamps and a histogram, which are asynchronously copied to user-space. This method is very efficient, and the overhead for most storage I/O rates (< 10k IOPS) should be negligible. If you have a higher IOPS storage environment, test and quantify the overhead before use.

## SOURCE
This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

## OS
Linux

## STABILITY
Unstable - in development.

## AUTHOR
Brendan Gregg, Rocky Xing

## SEE ALSO
biosnoop(8)


bcc-biolatpcts

title: bcc-biolatpcts(8)

text:
# bcc-biolatpcts(8)

## NAME
biolatpcts - Monitor IO latency distribution of a block device.

## SYNOPSIS
biolatpcts [-h] [-i INTERVAL] [-w which] [-p PCT,...] [-j] [-v] DEV

## DESCRIPTION
biolatpcts traces block device I/O (disk I/O) of the specified device, and calculates and prints the completion latency distribution percentiles per IO type periodically. Example:

\# biolatpcts /dev/nvme0n1

nvme0n1 p1 p5 p10 p16 p25 p50 p75 p84 p90 p95 p99 p100

read 95us 175us 305us 515us 895us 985us 995us 1.5ms 2.5ms 3.5ms 4.5ms 10ms

write 5us 5us 5us 15us 25us 135us 765us 855us 885us 895us 965us 1.5ms

discard 5us 5us 5us 5us 135us 145us 165us 205us 385us 875us 1.5ms 2.5ms

flush 5us 5us 5us 5us 5us 5us 5us 5us 5us 1.5ms 4.5ms 5.5ms

[...]

biolatpcts prints a number of pre-set latency percentiles in tabular form every three seconds. The interval can be changed with the -i option.

The latency is measured between issue to the device and completion. The starting point can be changed with the -w option.

Any number of percentiles can be specified using the -p option. The input percentile string is used verbatim in the output to ease machine consumption.

-j option enables json output. The result for each interval is printed on a single line.

This tool works by tracing blk_account_io_done() with kprobe and bucketing the completion latencies into percpu arrays. It may need updating to match the changes to the function.

Since this uses BPF, only the root user can use this tool.

## REQUIREMENTS
CONFIG_BPF, CONFIG_KPROBES and bcc.

## OPTIONS
-h Print usage message.

-i INTERVAL, --interval INTERVAL

Report interval. (default: 3)

-w {from-rq-alloc,after-rq-alloc,on-device}, --which {from-rq-alloc,after-rq-alloc,on-device}

Which latency to measure. (default: on-device)

-p PCT,..., --pcts PCT,...

Percentiles to calculate. (default: 1,5,10,16,25,50,75,84,90,95,99,100)

-j, --json

Output in json.

-v, --verbose

Enable debug output.

DEV

Target block device. /dev/DEVNAME, DEVNAME or MAJ:MIN.

## EXAMPLES
Print sda's I/O latency percentiles every second

\# biolatpcts -i 1 sda

Print nvme0n1's all-9 I/O latency percentiles in json every second

\# biolatpcts -p 99,99.9,99.99,99.999 -j -i 1 /dev/nvme0n1

## OVERHEAD
This traces kernel functions and maintains in-kernel per-cpu latency buckets, which are asynchronously copied to user-space. This method is very efficient, and the overhead for most storage I/O rates should be negligible. If you have an extremely high IOPS storage device, test and quantify the overhead before use.

## SOURCE
This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

## OS
Linux

## STABILITY
Unstable - in development.

## AUTHOR
Tejun Heo

## SEE ALSO
biolatency(8), biosnoop(8)


bcc-biopattern

title: bcc-biopattern(8)

text:
# bcc-biopattern(8)

## NAME
biopattern - Identify random/sequential disk access patterns.

## SYNOPSIS
biopattern [-h] [-d DISK] [interval] [count]

## DESCRIPTION
This traces block device I/O (disk I/O), and prints ratio of random/sequential I/O for each disk or the specified disk either on Ctrl-C, or after a given interval in seconds.

This works by tracing kernel tracepoint block:block_rq_complete.

Since this uses BPF, only the root user can use this tool.

## REQUIREMENTS
CONFIG_BPF and bcc.

## OPTIONS
-h

Show help message and exit.

-d

Trace this disk only.

interval

Print output every interval seconds, if any.

count

Number of interval summaries.

## EXAMPLES
Trace access patterns of all disks, and print a summary on Ctrl-C:

\# biopattern

Trace disk sdb only:

\# biopattern -d sdb

Print 1 second summaries, 10 times:

\# biopattern 1 10

## FIELDS
TIME

Time of the output, in HH:MM:SS format.

DISK

Disk device name.

%RND

Ratio of random I/O.

%SEQ

Ratio of sequential I/O.

COUNT

Number of I/O during the interval.

KBYTES

Total Kbytes for these I/O, during the interval.

## OVERHEAD
Since block device I/O usually has a relatively low frequency (< 10,000/s), the overhead for this tool is expected to be low or negligible. For high IOPS storage systems, test and quantify before use.

## SOURCE
This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

## OS
Linux

## STABILITY
Unstable - in development.

## AUTHOR
Rocky Xing

## SEE ALSO
biosnoop(8), biolatency(8), iostat(1)


bcc-biosnoop

title: bcc-biosnoop(8)

text:
# bcc-biosnoop(8)

## NAME
biosnoop - Trace block device I/O and print details incl. issuing PID.

## SYNOPSIS
biosnoop [-h] [-Q] [-d DISK] [-P]

## DESCRIPTION
This tools traces block device I/O (disk I/O), and prints a one-line summary for each I/O showing various details. These include the latency from the time of issue to the device to its completion, and the PID and process name from when the I/O was first created (which usually identifies the responsible process).

This uses in-kernel eBPF maps to cache process details (PID and comm) by I/O request, as well as a starting timestamp for calculating I/O latency.

This works by tracing various kernel blk_*() functions using dynamic tracing, and will need updating to match any changes to these functions.

This makes use of a Linux 4.4 feature (bpf_perf_event_output()); for kernels older than 4.4, see the version under tools/old, which uses an older mechanism

Since this uses BPF, only the root user can use this tool.

## REQUIREMENTS
CONFIG_BPF and bcc.

## OPTIONS
-h

Print usage message.

-Q

Include a column showing the time spent queued in the OS.

-d DISK

Trace this disk only.

-P

Display block I/O pattern (sequential or random).

## EXAMPLES
Trace all block device I/O and print a summary line per I/O:

\# biosnoop

## FIELDS
TIME(s)

Time of the I/O completion, in seconds since the first I/O was seen.

COMM

Cached process name, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.

PID

Cached process ID, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.

DISK

Disk device name.

T

Type of I/O: R = read, W = write. This is a simplification.

SECTOR

Device sector for the I/O.

BYTES

Size of the I/O, in bytes.

QUE(ms)

Time the I/O was queued in the OS before being issued to the device, in milliseconds.

LAT(ms)

Time for the I/O (latency) from the issue to the device, to its completion, in milliseconds.

## OVERHEAD
Since block device I/O usually has a relatively low frequency (< 10,000/s), the overhead for this tool is expected to be negligible. For high IOPS storage systems, test and quantify before use.

## SOURCE
This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

## OS
Linux

## STABILITY
Unstable - in development.

## AUTHOR
Brendan Gregg, Rocky Xing

## SEE ALSO
disksnoop(8), iostat(1)