virt-tail(1) Virtualization Support virt-tail(1)

virt-tail - دنبال کردن و نمایش انتهای فایل‌های لاگ ماشین مجازی

virt-tail [--options] -d domname file [file ...]
virt-tail [--options] -a disk.img [-a disk.img ...] file [file ...]

دستور "virt-tail" ابزاری در خط فرمان برای دنبال کردن (tail) محتویات "file" است، در حالی که "file" درون ماشین مجازی مشخص‌شده (یا ایمیج دیسک) قرار دارد. عملکرد آن مشابه دستور معمول "tail -f" است.

می‌توان چندین نام فایل را مشخص کرد که در این صورت هر یک به‌طور جداگانه دنبال می‌شوند. هر نام فایل باید یک مسیر کامل باشد که از دایرکتوری ریشه (شروع با '/') آغاز می‌شود.

اجرای این دستور تا زمان رخ دادن یکی از شرایط زیر ادامه می‌یابد:

  • کاربر کلیدهای ^C را بفشارد یا یک سیگنال وقفه دریافت شود.
  • هیچ‌یک از فایل‌های فهرست‌شده در سیستم مهمان یافت نشود یا همگی حذف شوند.
  • یک خطای غیرقابل‌برگشت رخ دهد.

دنبال کردن فایل /var/log/messages درون یک ماشین مجازی با نام "mydomain":

virt-tail -d mydomain /var/log/messages

نمایش راهنمای خلاصه.
افزودن file که باید یک ایمیج دیسک از ماشین مجازی باشد. اگر ماشین مجازی دارای چندین دستگاه بلاکی است، باید همه آن‌ها را با گزینه‌های -a جداگانه مشخص کنید.

قالب ایمیج دیسک به‌طور خودکار تشخیص داده می‌شود. برای بازنویسی این حالت و تحمیل یک قالب خاص، از گزینه --format=.. استفاده کنید.

افزودن یک دیسک دوردست. بخش "ADDING REMOTE STORAGE" در guestfish(1) را ببینید.
این پارامتر اندازه سکتور ایمیج دیسک را تعیین می‌کند. این مقدار بر روی تمام دیسک‌های بعدی که پس از این پارامتر به‌طور صریح اضافه می‌شوند تأثیر می‌گذارد. استفاده از --blocksize بدون آرگومان، اندازه سکتور دیسک را به مقدار پیش‌فرض که معمولاً ۵۱۲ بایت است تغییر می‌دهد. همچنین بخش "guestfs_add_drive_opts" در guestfs(3) را ببینید.
در صورت استفاده از libvirt، به URI داده‌شده متصل می‌شود. در صورت حذف، اتصال به هایپروایزر پیش‌فرض libvirt برقرار می‌شود.

اگر دستگاه‌های بلاکی مهمان را مستقیماً مشخص کنید (-a)، دیگر از libvirt استفاده نخواهد شد.

افزودن تمام دیسک‌ها از مهمان نام‌برده‌شده در libvirt. می‌توان به جای نام‌ها از UUIDهای دامنه نیز استفاده کرد.
هنگام درخواست کلیدها و گذرواژه‌ها، virt-tail معمولاً اکو کردن را غیرفعال می‌کند تا نتوانید آنچه تایپ می‌کنید را ببینید. اگر نگران حملات تمپست (Tempest) نیستید و شخص دیگری در اتاق حضور ندارد، می‌توانید این فلگ را مشخص کنید تا متن تایپ‌شده را ببینید.
این گزینه نادیده گرفته می‌شود. دستور virt-tail همیشه مانند tail(1) -f عمل می‌کند. نیازی به مشخص کردن گزینه -f نیست.
حالت پیش‌فرض برای گزینه -a تشخیص خودکار قالب ایمیج دیسک است. استفاده از این گزینه، قالب دیسک را برای گزینه‌های -a بعدی در خط فرمان اجباری می‌کند. استفاده از --format بدون آرگومان، حالت تشخیص خودکار را برای گزینه‌های -a بعدی بازمی‌گرداند.

برای مثال:

virt-tail --format=raw -a disk.img file

قالب خام (بدون تشخیص خودکار) را برای disk.img اجباری می‌کند.

virt-tail --format=raw -a disk.img --format -a another.img file

قالب خام (بدون تشخیص خودکار) را برای disk.img اجباری کرده و برای another.img به حالت تشخیص خودکار بازمی‌گردد.

اگر ایمیج‌های دیسک مهمان با قالب خام غیرقابل‌اعتماد دارید، باید از این گزینه برای تعیین قالب دیسک استفاده کنید. این کار از یک مشکل امنیتی احتمالی با مهمان‌های مخرب جلوگیری می‌کند (CVE-2010-3851).

مشخص کردن کلید برای LUKS، جهت بازگشایی خودکار دستگاه LUKS هنگام استفاده از بازرسی (inspection).
عبارت "NAME" نام دستگاه در libguestfs است (مانند "/dev/sda1"). عبارت "UUID" شناسه یکتای (UUID) دستگاه است. عبارت "all" به معنای آزمایش کلید بر روی تمام دستگاه‌های رمزنگاری‌شده است.

از "KEY_STRING" مشخص‌شده به عنوان گذرواژه استفاده می‌شود.

خواندن گذرواژه از FILENAME.
تلاش برای بازگشایی قفل دستگاه بدون نیاز به گذرواژه از طریق Clevis روی شبکه. لطفاً برای اطلاعات بیشتر درباره رمزنگاری دیسک وابسته به شبکه (NBDE)، به بخش "ENCRYPTED DISKS" در guestfs(3) مراجعه کنید.

توجه داشته باشید که اگر چنین گزینه‌ای در خط فرمان وجود داشته باشد، شبکه کاربری QEMU به‌طور خودکار برای محیط libguestfs فعال خواهد شد.

خواندن پارامترهای کلید یا گذرواژه از ورودی استاندارد (stdin). حالت پیش‌فرض تلاش برای خواندن گذرواژه‌ها از کاربر با باز کردن /dev/tty است.

اگر چندین دستگاه رمزنگاری‌شده وجود دارد، ممکن است لازم باشد چندین کلید را در ورودی استاندارد، هر کدام در یک خط وارد کنید.

سوار کردن (mount) پارتیشن یا حجم منطقی نام‌برده‌شده روی نقطه اتصال (mountpoint) داده‌شده.

اگر نقطه اتصال مشخص نشود، مقدار پیش‌فرض آن / خواهد بود.

مشخص کردن هر نقطه اتصال، بازرسی مهمان و سوار کردن ریشه و تمام نقاط اتصال آن را غیرفعال می‌کند؛ بنابراین اطمینان حاصل کنید که تمام نقاط اتصال لازم برای کار با نام فایل‌های ارائه‌شده به عنوان آرگومان را سوار کرده‌اید.

اگر نمی‌دانید یک ایمیج دیسک شامل چه سیستم‌فایل‌هایی است، می‌توانید guestfish را بدون این گزینه اجرا کرده و پارتیشن‌ها، سیستم‌فایل‌ها و LVهای موجود را فهرست کنید (دستورات "list-partitions"، "list-filesystems" و "lvs" را ببینید)، یا می‌توانید از برنامه virt-filesystems(1) استفاده کنید.

بخش سوم (و به‌ندرت استفاده‌شده) پارامتر mount، فهرستی از گزینه‌های mount است که برای سوار کردن سیستم‌فایل زیرین استفاده می‌شود. اگر این بخش مشخص نشود، گزینه‌های mount یا رشته خالی یا "ro" خواهند بود (حالت دوم در صورت استفاده از فلگ --ro است). با تعیین گزینه‌های mount، این انتخاب پیش‌فرض را بازنویسی می‌کنید. احتمالاً تنها زمانی از این قابلیت استفاده می‌کنید که بخواهید در صورت پشتیبانی سیستم‌فایل، ACLها و/یا ویژگی‌های گسترش‌یافته (extended attributes) را فعال کنید:

-m /dev/sda1:/:acl,user_xattr

استفاده از این فلگ معادل استفاده از دستور "mount-options" است.

بخش چهارم پارامتر، درایور سیستم‌فایلی است که باید استفاده شود، مانند "ext3" یا "ntfs". این بخش به‌ندرت مورد نیاز است، اما اگر چندین درایور برای یک سیستم‌فایل معتبر باشند (مانند "ext2" و "ext3") یا اگر libguestfs سیستم‌فایل را اشتباه تشخیص دهد، می‌تواند مفید باشد.

فعال کردن پیام‌های با جزئیات برای اشکال‌زدایی.
نمایش شماره نسخه و خروج.
فعال کردن ردگیری فراخوانی‌های API در libguestfs.

برای فهرست کردن فایل‌های لاگ از سیستم‌های مهمان، ابزار مرتبط virt-log(1) را ببینید. این ابزار قالب‌های باینری لاگ مانند ژورنال systemd را درک می‌کند.

دستور "virt-tail" توانایی محدودی در درک حروف درایو و مسیرهای ویندوز دارد (مانند E:\foo\bar.txt).

اگر و فقط اگر سیستم مهمان در حال اجرای ویندوز باشد:

  • پیشوندهای حرف درایو مانند "C:" با مراجعه به رجیستری ویندوز با سیستم‌فایل صحیح تطبیق داده می‌شوند.
  • هر نویسه بک‌اسلش ("\") در مسیر با اسلش جایگزین می‌شود تا libguestfs بتواند آن را پردازش کند.
  • مسیر بدون حساسیت به حروف کوچک و بزرگ پردازش می‌شود تا فایلی که باید نمایش داده شود مشخص گردد.

برخی کاستی‌های شناخته‌شده وجود دارد:

  • ممکن است برخی پیوندهای نمادین NTFS به‌درستی دنبال نشوند.
  • نقاط اتصال (junction points) در NTFS که بین سیستم‌فایل‌های مختلف عبور می‌کنند دنبال نمی‌شوند.

این برنامه در صورت موفقیت مقدار ۰ و در صورت بروز خطا مقداری غیر از صفر را برمی‌گرداند.

guestfs(3), guestfish(1), virt-copy-out(1), virt-cat(1), virt-log(1), virt-tar-out(1), tail(1), http://libguestfs.org.

Richard W.M. Jones http://people.redhat.com/~rjones

Copyright (C) 2016 Red Hat Inc.

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط «بنیاد نرم‌افزار آزاد» (Free Software Foundation) منتشر شده است؛ چه نسخه ۲ مجوز یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده و/یا تغییر دهید.

این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هیچ‌گونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر «مجوز عمومی همگانی گنو» را ببینید.

شما باید یک نسخه از «مجوز عمومی همگانی گنو» را به همراه این برنامه دریافت کرده باشید؛ در غیر این صورت، به بنیاد نرم‌افزار آزاد به آدرس زیر بنویسید:

Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor
Boston, MA 02110-1301 USA

برای دریافت فهرستی از اشکالات مربوط به libguestfs، از این پیوند استفاده کنید:

<https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools>

برای گزارش یک اشکال جدید در libguestfs، از این پیوند استفاده کنید:

<https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools>

هنگام گزارش اشکال، لطفاً موارد زیر را ارائه دهید:

  • نسخه libguestfs.
  • محل دریافت libguestfs (برای مثال کدام توزیع لینوکس، کامپایل از کد منبع و غیره).
  • اشکال را به‌دقت شرح دهید و روشی برای بازتولید آن ارائه دهید.
  • برنامه libguestfs-test-tool(1) را اجرا کرده و خروجی کامل و ویرایش‌نشده آن را درون گزارش اشکال قرار دهید.
2026-07-11 guestfs-tools-1.56.0