mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
This command run over the source: perl -pi.bak -e 's/(20[01][0-9])-2018/$1-2019/g' `git ls-files`
271 lines
6.9 KiB
Plaintext
271 lines
6.9 KiB
Plaintext
=head1 NAME
|
||
|
||
virt-df - Display free space on virtual filesystems
|
||
|
||
=head1 SYNOPSIS
|
||
|
||
All guests:
|
||
|
||
virt-df [--options]
|
||
|
||
Single guest:
|
||
|
||
virt-df [--options] -d domname
|
||
|
||
virt-df [--options] -a disk.img [-a disk.img ...]
|
||
|
||
Old style:
|
||
|
||
virt-df [--options] domname
|
||
|
||
virt-df [--options] disk.img [disk.img ...]
|
||
|
||
=head1 DESCRIPTION
|
||
|
||
C<virt-df> is a command line tool to display free space on virtual
|
||
machine filesystems. Unlike other tools, it doesn't just display the
|
||
size of disk allocated to a virtual machine, but can look inside disk
|
||
images to see how much space is really being used.
|
||
|
||
If used without any I<-a> or I<-d> arguments, C<virt-df> checks with
|
||
libvirt to get a list of all active and inactive guests, and performs
|
||
a C<df>-type operation on each one in turn, printing out the results.
|
||
|
||
If any I<-a> or I<-d> arguments are specified, C<virt-df> performs a
|
||
C<df>-type operation on either the single named libvirt domain, or on
|
||
the disk image(s) listed on the command line (which must all belong to
|
||
a single VM). B<In this mode (with arguments), C<virt-df> will only
|
||
work for a single guest>. If you want to run on multiple guests, then
|
||
you have to invoke C<virt-df> multiple times.
|
||
|
||
Use the I<--csv> option to get a format which can be easily parsed by
|
||
other programs. Other options are similar to the standard L<df(1)>
|
||
command.
|
||
|
||
=head1 EXAMPLES
|
||
|
||
Show disk usage for a single libvirt guest called C<F14x64>. Make the
|
||
output human-readable:
|
||
|
||
# virt-df -d F14x64 -h
|
||
Filesystem Size Used Available Use%
|
||
F14x64:/dev/sda1 484M 66M 393M 14%
|
||
F14x64:/dev/vg_f13x64/lv_root 7.4G 3.4G 4.0G 46%
|
||
|
||
Show disk usage for a disk image file called F<test.img>:
|
||
|
||
$ virt-df -a test1.img
|
||
Filesystem 1K-blocks Used Available Use%
|
||
test1.img:/dev/sda1 99099 1551 92432 2%
|
||
|
||
If a single guest has multiple disks, use the I<-a> option repeatedly.
|
||
A plus sign (C<+>) is displayed for each additional disk. B<Note: Do
|
||
not do this with unrelated guest disks.>
|
||
|
||
$ virt-df -a Win7x32TwoDisks-a -a Win7x32TwoDisks-b
|
||
Filesystem 1K-blocks Used Available Use%
|
||
Win7x32TwoDisks-a+:/dev/sda1 102396 24712 77684 25%
|
||
Win7x32TwoDisks-a+:/dev/sda2 12478460 7403416 5075044 60%
|
||
Win7x32TwoDisks-a+:/dev/sdb1 521212 55728 465484 11%
|
||
|
||
=head1 OPTIONS
|
||
|
||
=over 4
|
||
|
||
=item B<--help>
|
||
|
||
Display brief help.
|
||
|
||
=item B<-a> FILE
|
||
|
||
=item B<--add> FILE
|
||
|
||
Add C<FILE> which should be a disk image from a virtual machine. If
|
||
the virtual machine has multiple block devices, you must supply all of
|
||
them with separate I<-a> options.
|
||
|
||
The format of the disk image is auto-detected. To override this and
|
||
force a particular format use the I<--format=..> option.
|
||
|
||
=item B<-a> URI
|
||
|
||
=item B<--add> URI
|
||
|
||
Add a remote disk. See L<guestfish(1)/ADDING REMOTE STORAGE>.
|
||
|
||
=item B<-c> URI
|
||
|
||
=item B<--connect> URI
|
||
|
||
If using libvirt, connect to the given I<URI>. If omitted, then we
|
||
connect to the default libvirt hypervisor.
|
||
|
||
If you specify guest block devices directly (I<-a>), then libvirt is
|
||
not used at all.
|
||
|
||
=item B<--csv>
|
||
|
||
Write out the results in CSV format (comma-separated values). This
|
||
format can be imported easily into databases and spreadsheets, but
|
||
read L</NOTE ABOUT CSV FORMAT> below.
|
||
|
||
=item B<-d> guest
|
||
|
||
=item B<--domain> guest
|
||
|
||
Add all the disks from the named libvirt guest. Domain UUIDs can be
|
||
used instead of names.
|
||
|
||
=item B<--format=raw|qcow2|..>
|
||
|
||
=item B<--format>
|
||
|
||
The default for the I<-a> option is to auto-detect the format of the
|
||
disk image. Using this forces the disk format for I<-a> options which
|
||
follow on the command line. Using I<--format> with no argument
|
||
switches back to auto-detection for subsequent I<-a> options.
|
||
|
||
For example:
|
||
|
||
virt-df --format=raw -a disk.img
|
||
|
||
forces raw format (no auto-detection) for F<disk.img>.
|
||
|
||
virt-df --format=raw -a disk.img --format -a another.img
|
||
|
||
forces raw format (no auto-detection) for F<disk.img> and reverts to
|
||
auto-detection for F<another.img>.
|
||
|
||
If you have untrusted raw-format guest disk images, you should use
|
||
this option to specify the disk format. This avoids a possible
|
||
security problem with malicious guests (CVE-2010-3851).
|
||
|
||
=item B<-h>
|
||
|
||
=item B<--human-readable>
|
||
|
||
Print sizes in human-readable format.
|
||
|
||
You are not allowed to use I<-h> and I<--csv> at the same time.
|
||
|
||
=item B<-i>
|
||
|
||
=item B<--inodes>
|
||
|
||
Print inodes instead of blocks.
|
||
|
||
=item B<--one-per-guest>
|
||
|
||
Since libguestfs 1.22, this is the default. This option does nothing
|
||
and is left here for backwards compatibility with older scripts.
|
||
|
||
=item B<-P> nr_threads
|
||
|
||
Since libguestfs 1.22, virt-df is multithreaded and examines guests in
|
||
parallel. By default the number of threads to use is chosen based on
|
||
the amount of free memory available at the time that virt-df is
|
||
started. You can force virt-df to use at most C<nr_threads> by using
|
||
the I<-P> option.
|
||
|
||
Note that I<-P 0> means to autodetect, and I<-P 1> means to use a
|
||
single thread.
|
||
|
||
=item B<--uuid>
|
||
|
||
Print UUIDs instead of names. This is useful for following
|
||
a guest even when the guest is migrated or renamed, or when
|
||
two guests happen to have the same name.
|
||
|
||
Note that only domains that we fetch from libvirt come with UUIDs.
|
||
For disk images, we still print the disk image name even when
|
||
this option is specified.
|
||
|
||
=item B<-v>
|
||
|
||
=item B<--verbose>
|
||
|
||
Enable verbose messages for debugging.
|
||
|
||
=item B<-V>
|
||
|
||
=item B<--version>
|
||
|
||
Display version number and exit.
|
||
|
||
=item B<-x>
|
||
|
||
Enable tracing of libguestfs API calls.
|
||
|
||
=back
|
||
|
||
=head1 STATVFS NUMBERS
|
||
|
||
C<virt-df> (and L<df(1)>) get information by issuing a L<statvfs(3)>
|
||
system call. You can get the same information directly, either from
|
||
the host (using libguestfs) or inside the guest:
|
||
|
||
=over 4
|
||
|
||
=item From the host
|
||
|
||
Run this command:
|
||
|
||
guestfish --ro -d GuestName -i statvfs /
|
||
|
||
(change F</> to see stats for other filesystems).
|
||
|
||
=item From inside the guest
|
||
|
||
Run this command:
|
||
|
||
python -c 'import os; s = os.statvfs ("/"); print s'
|
||
|
||
(change F</> to see stats for other filesystems).
|
||
|
||
=back
|
||
|
||
=head1 NOTE ABOUT CSV FORMAT
|
||
|
||
Comma-separated values (CSV) is a deceptive format. It I<seems> like
|
||
it should be easy to parse, but it is definitely not easy to parse.
|
||
|
||
Myth: Just split fields at commas. Reality: This does I<not> work
|
||
reliably. This example has two columns:
|
||
|
||
"foo,bar",baz
|
||
|
||
Myth: Read the file one line at a time. Reality: This does I<not>
|
||
work reliably. This example has one row:
|
||
|
||
"foo
|
||
bar",baz
|
||
|
||
For shell scripts, use C<csvtool> (L<https://github.com/Chris00/ocaml-csv>
|
||
also packaged in major Linux distributions).
|
||
|
||
For other languages, use a CSV processing library (eg. C<Text::CSV>
|
||
for Perl or Python’s built-in csv library).
|
||
|
||
Most spreadsheets and databases can import CSV directly.
|
||
|
||
=head1 EXIT STATUS
|
||
|
||
This program returns 0 if successful, or non-zero if there was an
|
||
error.
|
||
|
||
=head1 SEE ALSO
|
||
|
||
L<df(1)>,
|
||
L<guestfs(3)>,
|
||
L<guestfish(1)>,
|
||
L<virt-filesystems(1)>,
|
||
L<http://libguestfs.org/>.
|
||
|
||
=head1 AUTHOR
|
||
|
||
Richard W.M. Jones L<http://people.redhat.com/~rjones/>
|
||
|
||
=head1 COPYRIGHT
|
||
|
||
Copyright (C) 2009-2019 Red Hat Inc.
|