mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
This follows (tails) a log file within a guest, rather like the regular 'tail -f' command. For example: virt-tail -d guest /var/log/messages
254 lines
6.1 KiB
Plaintext
254 lines
6.1 KiB
Plaintext
=head1 NAME
|
|
|
|
virt-tail - Follow (tail) files in a virtual machine
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
virt-tail [--options] -d domname file [file ...]
|
|
|
|
virt-tail [--options] -a disk.img [-a disk.img ...] file [file ...]
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
C<virt-tail> is a command line tool to follow (tail) the contents of
|
|
C<file> where C<file> exists in the named virtual machine (or disk
|
|
image). It is similar to the ordinary command S<C<tail -f>>.
|
|
|
|
Multiple filenames can be given, in which case each is followed
|
|
separately. Each filename must be a full path, starting at the root
|
|
directory (starting with '/').
|
|
|
|
The command keeps running until:
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
The user presses the ^C or an interrupt signal is received.
|
|
|
|
=item *
|
|
|
|
None of the listed files was found in the guest, or they
|
|
all get deleted.
|
|
|
|
=item *
|
|
|
|
There is an unrecoverable error.
|
|
|
|
=back
|
|
|
|
=head1 EXAMPLE
|
|
|
|
Follow F</var/log/messages> inside a virtual machine called C<mydomain>:
|
|
|
|
virt-tail -d mydomain /etc/fstab
|
|
|
|
=head1 OPTIONS
|
|
|
|
=over 4
|
|
|
|
=item B<--help>
|
|
|
|
Display brief help.
|
|
|
|
=item B<-a> file
|
|
|
|
=item B<--add> file
|
|
|
|
Add I<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<-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<--echo-keys>
|
|
|
|
When prompting for keys and passphrases, virt-tail normally turns
|
|
echoing off so you cannot see what you are typing. If you are not
|
|
worried about Tempest attacks and there is no one else in the room you
|
|
can specify this flag to see what you are typing.
|
|
|
|
=item B<-f>
|
|
|
|
=item B<--follow>
|
|
|
|
This option is ignored. virt-tail always behaves like
|
|
S<L<tail(1)> I<-f>>. You don't need to specify the I<-f> option.
|
|
|
|
=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-tail --format=raw -a disk.img file
|
|
|
|
forces raw format (no auto-detection) for F<disk.img>.
|
|
|
|
virt-tail --format=raw -a disk.img --format -a another.img file
|
|
|
|
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<--keys-from-stdin>
|
|
|
|
Read key or passphrase parameters from stdin. The default is
|
|
to try to read passphrases from the user by opening F</dev/tty>.
|
|
|
|
=item B<-m> dev[:mountpoint[:options[:fstype]]]
|
|
|
|
=item B<--mount> dev[:mountpoint[:options[:fstype]]]
|
|
|
|
Mount the named partition or logical volume on the given mountpoint.
|
|
|
|
If the mountpoint is omitted, it defaults to F</>.
|
|
|
|
Specifying any mountpoint disables the inspection of the guest and
|
|
the mount of its root and all of its mountpoints, so make sure
|
|
to mount all the mountpoints needed to work with the filenames
|
|
given as arguments.
|
|
|
|
If you don't know what filesystems a disk image contains, you can
|
|
either run guestfish without this option, then list the partitions,
|
|
filesystems and LVs available (see L</list-partitions>,
|
|
L</list-filesystems> and L</lvs> commands), or you can use the
|
|
L<virt-filesystems(1)> program.
|
|
|
|
The third (and rarely used) part of the mount parameter is the list of
|
|
mount options used to mount the underlying filesystem. If this is not
|
|
given, then the mount options are either the empty string or C<ro>
|
|
(the latter if the I<--ro> flag is used). By specifying the mount
|
|
options, you override this default choice. Probably the only time you
|
|
would use this is to enable ACLs and/or extended attributes if the
|
|
filesystem can support them:
|
|
|
|
-m /dev/sda1:/:acl,user_xattr
|
|
|
|
Using this flag is equivalent to using the C<mount-options> command.
|
|
|
|
The fourth part of the parameter is the filesystem driver to use, such
|
|
as C<ext3> or C<ntfs>. This is rarely needed, but can be useful if
|
|
multiple drivers are valid for a filesystem (eg: C<ext2> and C<ext3>),
|
|
or if libguestfs misidentifies a filesystem.
|
|
|
|
=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 LOG FILES
|
|
|
|
To list out the log files from guests, see the related tool
|
|
L<virt-log(1)>. It understands binary log formats such as the systemd
|
|
journal.
|
|
|
|
=head1 WINDOWS PATHS
|
|
|
|
C<virt-tail> has a limited ability to understand Windows drive letters
|
|
and paths (eg. F<E:\foo\bar.txt>).
|
|
|
|
If and only if the guest is running Windows then:
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
Drive letter prefixes like C<C:> are resolved against the
|
|
Windows Registry to the correct filesystem.
|
|
|
|
=item *
|
|
|
|
Any backslash (C<\>) characters in the path are replaced
|
|
with forward slashes so that libguestfs can process it.
|
|
|
|
=item *
|
|
|
|
The path is resolved case insensitively to locate the file
|
|
that should be displayed.
|
|
|
|
=back
|
|
|
|
There are some known shortcomings:
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
Some NTFS symbolic links may not be followed correctly.
|
|
|
|
=item *
|
|
|
|
NTFS junction points that cross filesystems are not followed.
|
|
|
|
=back
|
|
|
|
=head1 EXIT STATUS
|
|
|
|
This program returns 0 if successful, or non-zero if there was an
|
|
error.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<guestfs(3)>,
|
|
L<guestfish(1)>,
|
|
L<virt-copy-out(1)>,
|
|
L<virt-cat(1)>,
|
|
L<virt-log(1)>,
|
|
L<virt-tar-out(1)>,
|
|
L<tail(1)>,
|
|
L<http://libguestfs.org/>.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Richard W.M. Jones L<http://people.redhat.com/~rjones/>
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright (C) 2016 Red Hat Inc.
|