Saya sedang mencari yang setara dengan perintah 'ekor' Unix yang akan memungkinkan saya untuk menonton output dari file log saat sedang ditulis.
Saya sedang mencari yang setara dengan perintah 'ekor' Unix yang akan memungkinkan saya untuk menonton output dari file log saat sedang ditulis.
Jawaban:
Saya sarankan menginstal sesuatu seperti Utilitas GNU untuk Win32 . Ini memiliki sebagian besar favorit, termasuk ekor.
tail
pada file 2GB dan tersedak. more
bekerja dengan baik (setidaknya melihat awal file).
head
tetapi tidak tail
... Gagasan?
tail
:)
Jika Anda menggunakan PowerShell maka ini berfungsi:
Get-Content filenamehere -Wait -Tail 30
Posting komentar Stefan dari bawah, jadi orang tidak ketinggalan
PowerShell 3 memperkenalkan parameter -Tail untuk memasukkan hanya x baris terakhir
tail
bisa berguna) (2) tidak se dinamis yang saya inginkan (mungkin karena perubahan OS / sistem file antara pengaturan saya dan poster lainnya ?). Yaitu, saya memutuskan bahwa shell Get-Content
tidak melakukan pembaruan sampai saya jalankan dir
di shell lain.
Get-Content -Tail 100 -Wait .\logfile.log
?
Saya selalu menggunakan Baretail untuk tailing di Windows. Gratis dan cukup bagus.
Sunting: untuk deskripsi Baretail yang lebih baik, lihat pertanyaan ini
Siapa pun yang tertarik pada ekor CMD DOS menggunakan perintah batch (lihat di bawah).
Itu bukan prefek, dan garis kadang-kadang berulang.
Penggunaan: tail.bat -d tail.bat -f -f
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
rem tail.bat -d <lines> <file>
rem tail.bat -f <file>
rem ****** MAIN ******
IF "%1"=="-d" GOTO displayfile
IF "%1"=="-f" GOTO followfile
GOTO end
rem ************
rem Show Last n lines of file
rem ************
:displayfile
SET skiplines=%2
SET sourcefile=%3
rem *** Get the current line count of file ***
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l)
rem *** Calculate the lines to skip
SET /A skiplines=%find_lc%-!skiplines!
rem *** Display to screen line needed
more +%skiplines% %sourcefile%
GOTO end
rem ************
rem Show Last n lines of file & follow output
rem ************
:followfile
SET skiplines=0
SET findend_lc=0
SET sourcefile=%2
:followloop
rem *** Get the current line count of file ***
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l)
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET findend_lc=%%l)
rem *** Calculate the lines to skip
SET /A skiplines=%findend_lc%-%find_lc%
SET /A skiplines=%find_lc%-%skiplines%
rem *** Display to screen line when file updated
more +%skiplines% %sourcefile%
goto followloop
:end
ping 127.0.0.1 -n 2 > nul
sebelumnya goto followloop
. ia mengirim dua ping dan menunggu 1 detik di antaranya. jadi itu akan membiarkan cpu hidup!: D
timeout /t 2
?
Ada cukup banyak opsi, namun semuanya memiliki kekurangan dengan fitur yang lebih canggih.
Ekor GnuWin32 buggy ( α β γ ) - hal-hal seperti -f saja tidak berfungsi.
Ekor UnxUtils tampaknya lebih baik (-f berfungsi, tetapi --pid tampaknya tidak, -n tetapi tidak --lines = n gagal dengan -f), tetapi tampaknya merupakan proyek mati.
Cygwin adalah bubur besar jelek, mungkin hanya bisa menggunakan paket DLL dan coreutils - tetapi masih memiliki masalah seperti --pid tidak bekerja dengan proses win32 asli.
Saya telah menggunakan Tail Untuk Windows . Tentu tidak seanggun menggunakan
ekortapi kemudian, Anda menggunakan Windows. ;)
Saya belum melihat Ahli Log di antara jawaban di sini.
Ini dapat disesuaikan dan cukup baik untuk berkeliling file log. Sejauh ini adalah penampil log grafis Windows terbaik untuk saya.
Sayangnya, perangkat lunak ini tidak lagi tersedia. Anda dapat membacanya di archive.org .
Jika Anda tidak ingin menginstal apa pun, Anda dapat "membuat sendiri" file batch yang berfungsi dari perintah Windows standar. Berikut adalah beberapa petunjuk bagaimana melakukannya.
1) Menggunakan find / c / v "" yourinput.file , dapatkan jumlah baris dalam file input Anda. Outputnya seperti:
---------- T.TXT: 15
2) Menggunakan for / f , parsing output ini untuk mendapatkan angka 15.
3) Dengan menggunakan set / a , hitung jumlah garis head yang perlu dilewati
4) Menggunakan for / f "skip = n" melewati garis kepala dan gema / proses garis ekor.
Jika saya menemukan waktu, saya akan membangun file batch dan mengirimnya kembali ke sini.
tail.bat
REM tail.bat
REM
REM Usage: tail.bat <file> <number-of-lines>
REM
REM Examples: tail.bat myfile.txt 10
REM tail.bat "C:\My File\With\Spaces.txt" 10
@ECHO OFF
for /f "tokens=2-3 delims=:" %%f in ('find /c /v "" %1') do (
for %%F in (%%f %%g) do set nbLines=%%F )
set /a nbSkippedLines=%nbLines%-%2
for /f "usebackq skip=%nbSkippedLines% delims=" %%d in (%1) do echo %%d
Coba Layanan Windows untuk UNIX . Memberikan kerang, awk, sed, dll, serta ekor.
Pembaruan -: Sayangnya, pada 2019 sistem ini tidak lagi tersedia di Pusat Unduhan Microsoft.
Saya lebih suka TailMe karena kemungkinan untuk menonton beberapa file log secara bersamaan dalam satu jendela: http://www.dschensky.de/Software/Staff/tailme_en.htm
DOS tidak memiliki perintah ekor; Anda dapat mengunduh biner Windows untuk GNU tail dan alat GNU lainnya di sini .
Pilihan lain adalah menginstal MSYS (yang lebih leightweight daripada Cygwin).
Saya baru saja menulis skrip batch kecil ini. Itu tidak secanggih Unix "tail", tetapi mudah-mudahan seseorang dapat menambahkannya untuk memperbaikinya, seperti membatasi output ke 10 baris terakhir file, dll. Jika Anda benar-benar memperbaiki skrip ini, silakan kirim bagi saya di merampok ~ [at] ~ gmail.com.
@echo off
:: This is a batch script I wrote to mimic the 'tail' UNIX command.
:: It is far from perfect, but I am posting it in the hopes that it will
:: be improved by other people. This was designed to work on Windows 7.
:: I have not tested it on any other versions of Windows
if "%1" == "" goto noarg
if "%1" == "/?" goto help
if "%1" == "-?" goto help
if NOT EXIST %1 goto notfound
set taildelay=%2
if "%taildelay%"=="" set taildelay=1
:loop
cls
type %1
:: I use the CHOICE command to create a delay in batch.
CHOICE /C YN /D Y /N /T %taildelay%
goto loop
:: Error handlers
:noarg
echo No arguments given. Try /? for help.
goto die
:notfound
echo The file '%1' could not be found.
goto die
:: Help text
:help
echo TAIL filename [seconds]
:: I use the call more pipe as a way to insert blank lines since echo. doesnt
:: seem to work on Windows 7
call | more
echo Description:
echo This is a Windows version of the UNIX 'tail' command.
echo Written completely from scratch by Andrey G.
call | more
echo Parameters:
echo filename The name of the file to display
call | more
echo [seconds] The number of seconds to delay before reloading the
echo file and displaying it again. Default is set to 1
call | more
echo ú /? Displays this help message
call | more
echo NOTE:
echo To exit while TAIL is running, press CTRL+C.
call | more
echo Example:
echo TAIL foo 5
call | more
echo Will display the contents of the file 'foo',
echo refreshing every 5 seconds.
call | more
:: This is the end
:die
echo.
dengan trailing dot pada kata (dan bukan sebagai argumen terpisah) itu akan mencetak satu baris baru.
The tail
perintah dan banyak lainnya yang tersedia di Windows Resource Kit alat paket.
Jika Anda ingin menggunakan port Win32 dari beberapa utilitas Unix (daripada menginstal Cygwin), saya merekomendasikan utilitas GNU untuk Win32 .
Bobot lebih ringan dari Cygwin dan lebih portabel.
Instal MKS Toolkit ... Agar Anda dapat menjalankan semua perintah Unix di Windows.
Perintahnya adalah:
tail -f <file-name>
Di Far Manager , tekan F3pada file untuk masuk ke penampil standar, lalu Endtombol untuk menavigasi ke akhir file.
Jika file diperbarui, Far Manager akan menggulirnya secara otomatis.
Penampil log grafis, walaupun mereka sangat baik untuk melihat file log, tidak memenuhi kebutuhan akan utilitas baris perintah yang dapat dimasukkan ke dalam skrip (atau file batch). Seringkali perintah yang sederhana dan bertujuan umum seperti itu dapat digunakan sebagai bagian dari solusi khusus untuk lingkungan tertentu. Metode grafis tidak cocok untuk digunakan seperti itu.
Saya pikir saya telah menemukan sebuah utilitas yang memenuhi kebutuhan untuk fungsi ekor dalam file batch. Ini disebut "mtee", dan gratis. Saya telah memasukkannya ke dalam file batch yang sedang saya kerjakan dan melakukan pekerjaan dengan sangat baik. Pastikan untuk meletakkan executable ke direktori dalam pernyataan PATH, dan pergilah.
Inilah tautannya: