دو نمونه از تفاوت سوییچهای f و F در دستور tail


waiting…

تفاوت دوم:

سوییچ f قابلیت نمایش انلاین محتویات فایلها را در بعضی از شرایط ندارد.
مثال زیر را ببینید.
ابتدا به فایل alert، تاریخ جاری سیستم را اضافه کرده و با کمک دستور tail -f، به صورت انلاین، محتویات این فایل را مانیتور می کنیم:

[[email protected] ~]# echo date»alert
[[email protected] ~]# tail –f alert
Tue Apr 17 12:38:15 IRDT 2018

در همین حال، محتویات این فایل را با کمک دستور vi پاک می کنیم:

[[email protected] ~]# vi alert
Tue Apr 17 12:39:04 IRDT 2018
:1d
ZZ

با انجام این کار، دستور tail -f متوجه این تغییر نخواهد شد و کماکان اطلاعات قبلی فایل را در حالت انتظار نمایش خواهد داد در صورتی که فایل alert فاقد محتواست:

[[email protected] ~]# tail –f alert
Tue Apr 17 12:38:15 IRDT 2018

سوییچ F، این معایب را ندارد:

[[email protected] ~]# tail -F alert
Tue Apr 17 12:44:04 IRDT 2018

[[email protected] ~]# vi alert
Tue Apr 17 12:44:04 IRDT 2018
:1d
ZZ

[[email protected] ~]# tail -F alert
Tue Apr 17 12:44:04 IRDT 2018
tail: alert’ has been replaced; following end of new file
waiting…

علاوه بر این قابلیت، این سوییچ اطلاعات اضافه شده از طریق ویرایشگر vi را هم به صورت انلاین نمایش می دهد:

[[email protected] ~]# vi alert
i am usefzadeh!!!

[[email protected] ~]# tail -F alert
Tue Apr 17 12:44:04 IRDT 2018
tail: alert’ has been replaced; following end of new file
i am usefzadeh!!!
waiting…

نتیجه انکه، سوییچ F سعی دارد تا در صورت تغییر inode یک فایل(به جهت تغییر نام یا حذف و ایجاد مجدد)، مجددا indoe جدید را پیدا کند پس این سوییچ می تواند در زمانهایی چون rotate شدن فایل لاگ، مفید واقع شود در صورتی که سوییچ f، بعد از عمل logrotate( به صورت copytruncate)، کماکان به indoe قدیمی فایل که به صورت ارشیو درامده است، اشاره خواهد کرد.

دیدگاهتان را بنویسید