Na verdade, existe uma cauda para o XP. Só que a Microsoft não o instala com a versão padrão do XP; eles o empacotaram nas 'Ferramentas do Windows Server 2003 Resource Kit'. Você pode obtê-lo aqui: microsoft.com/downloads/…
MobaXterm, é gratuito e tem um registro de plugins, você pode fazer tail -f /drives/c/logs/mylog.log
surfealokesea
3
Eu não acho que isso deveria ter sido fechado, pois preciso da mesma coisa para depurar o rastreamento no meu aplicativo do Windows. Trata-se de "ferramentas de software comumente usados por programadores", que é sobre o tema
kristianp
Respostas:
137
Eu sugiro instalar algo como o GNU Utilities for Win32 . Tem a maioria dos favoritos, incluindo cauda.
@ EricJ., Obrigado, isso parece realmente relevante. Mas eu só percebi que é mais fácil para mim usar uma solução alternativa: Eu só vou escrever um script simples que faz uma tail:)
É bom saber sobre isso; obrigado. Mas tive alguns problemas com ele (no Windows 7). (1) exibe o arquivo inteiro (não é bom para um arquivo de log massivo, e é por isso que tailpode ser útil) (2) não é tão dinâmico quanto eu gostaria (talvez devido a alterações no sistema OS / arquivos entre minha configuração e outros pôsteres ?). Ou seja, eu determinei que o shell Get-Contentàs vezes não é atualizado até executar direm outro shell.
mpontillo
10
Acho que vale a pena mencionar que o PowerShell fará uma pausa na rolagem / saída se você selecionar algo dentro da janela do terminal para ter a chance de ler, copiar / colar, etc. Se você pressionar Enter, ele continuará a rolagem.
Cbednarski 19/05
19
PowerShell 3 introduz um parâmetro -tail para incluir apenas os últimos x linhas
Stefan Haberl
8
Portanto, a resposta correta para o Powershell não deveria ser algo assim Get-Content -Tail 100 -Wait .\logfile.log?
Henno Vermeulen 01/03
62
Eu sempre usei o Baretail para seguir no Windows. É grátis e muito bom.
Edit: para uma melhor descrição do Baretail veja esta pergunta
Essa acabou sendo a primeira solução que funcionou para mim no [gulp] Windows Server 2003 R2 SP1! Super fácil com o instalador, trabalhou para tailing Wasily direita fora da caixa :)
cellepo
Baixar e executar executáveis não assinados por HTTP provavelmente não é uma boa ideia. No mínimo, deve-se fazer o download através do site HTTPS .
Zero3
Acho incrível que eles continuem mantendo o site e atualizando o certificado SSL até o momento, enquanto o software não é atualizado desde 2006. Mas funciona bem. Exatamente o que eu precisava. O Windows Defender não encontra nenhuma ameaça.
Qualquer pessoa interessada em um DOS CMD usa comandos em lote (veja abaixo).
Não é perfeito, e as linhas se repetem.
Uso: 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
Isso é inteligente, e eu pretendo usar a funcionalidade existente ao baixar uma ferramenta não é uma opção! No entanto, esse código consumirá CPU, pois girará continuamente no acompanhamento de -f.
Armstrhb
1
teve o mesmo problema com o download e comer CPU! adicionou esta linha ping 127.0.0.1 -n 2 > nulantes goto followloop. ele envia dois pings e espera 1 segundo entre eles. Então, deixaria a CPU viver!: D
Mohsen ZareZardeyni 4/17
Impressionante! Muito obrigado
John Fairbanks
1
por que empregar ping se você poderia utilizar timeout /t 2?
Namezero
23
Existem várias opções, no entanto, todas elas apresentam falhas com recursos mais avançados.
A cauda do UnxUtils parece melhor (-f funciona, mas --pid parece não funcionar, -n mas não --lines = n falha com -f), mas parece ser um projeto morto.
Cygwin é um grande e feio cogumelo, talvez apenas use o pacote DLL e coreutils - mas ainda tem problemas como - o pid não funciona com processos nativos do win32.
Eu amo os recursos do Log Expert, no entanto, minha experiência foi complicada no Windows 7 de 64 bits.
argila
Sinto falta da funcionalidade "visão clara".
Daniel Hári
13
Se você não deseja instalar nada, pode "criar seu próprio" arquivo em lotes que executa o trabalho a partir dos comandos padrão do Windows. Aqui estão algumas dicas de como fazê-lo.
1) Usando find / c / v "" yourinput.file , obtenha o número de linhas no seu arquivo de entrada. A saída é algo como:
---------- T.TXT: 15
2) Usando for / f , analise esta saída para obter o número 15.
3) Usando set / a , calcule o número de linhas principais que precisam ser puladas
4) Usando for / f "skip = n" pule as linhas da cabeça e faça eco / processe as linhas da cauda.
Se eu encontrar tempo, criarei um arquivo em lote e o postarei aqui.
EDITAR: 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
Aqui está o lote da explicação anterior. Ele exibe as últimas 10 linhas do arquivo atual: ____ para / f "tokens = 3" %% f in ('find / c / v ""% 0') define set nbLines = %% f ____ set / a nbSkippedLines = % nbLines% -10 ____ para / f "skip =% nbSkippedLines% delims =" %% d em (% 0) fazem eco %% d
Nicolas
1
É exatamente isso que o pôster deseja e funciona muito bem.
Jackie Yeh
Obrigado pelo código! Adicionei-o à resposta com o número de parâmetro corrigido e um adicional ao número de linhas. Observe que ele exibirá as linhas e uma saída. PS: Usei-o para criar um arquivo de 1.5Gb e obtive os resultados em apenas 15 segundos.
Leopoldo Sanczyk,
Na verdade, na etapa 4, seria ainda melhor eu usar o comando 'more', que usa parâmetros como o número de linhas a serem ignoradas. Ainda mais rápido, eu pensaria.
Philibert Perusse
8
Eu usei o Mtail recentemente e parece funcionar bem. Este é o tipo de GUI como o baretail mencionado acima.
Mesmo? Você está dando uma resposta negativa às respostas de quatro anos de idade? Maneira de contribuir.
Dave
9
@ Dave: Embora a pergunta seja antiga, as pessoas ainda a procuram tentando encontrar a melhor resposta. Se uma resposta de quase 5 anos atrás não é mais relevante ou boa, então por que não se deve rebaixá-la? Todo este site trata de obter informações valiosas mais rapidamente - hoje, não há 5 anos.
Oliver
1
@ Hellfire - você deve editar a resposta com a condição de que não funcione com o Wwindows 7. É bobagem apenas comentar.
O DOS typefunciona como o * nux cat, embora apenas catdespeje o arquivo inteiro, então não é realmente verdade tail, mas estará disponível rapidamente sem fazer o download / instalar um tailsubstituto verdadeiro .
Acabei de escrever este pequeno script em lote. Não é tão sofisticado quanto o "rabo" do Unix, mas espero que alguém possa adicioná-lo para melhorá-lo, como limitar a saída às últimas 10 linhas do arquivo, etc. Se você melhorar este script, envie-o para mim em roubar ~ [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
boa idéia usando o comando "type", mas você não pode canalizar para ele!
Eadmaster
Isso apenas recarrega o arquivo de texto.
a versão em lote do eco tem um comportamento estranho; se não houver argumentos, apenas sairá, mas se você chamar o comando como echo.com um ponto à direita na palavra (e não como um argumento separado), imprimirá uma única nova linha.
Os visualizadores de log gráficos, embora possam ser muito bons para exibir arquivos de log, não atendem à necessidade de um utilitário de linha de comando que possa ser incorporado aos scripts (ou arquivos em lote). Geralmente, um comando simples e de uso geral pode ser usado como parte de uma solução especializada para um ambiente específico. Os métodos gráficos não se prestam prontamente a esse uso.
Acho que encontrei um utilitário que atende à necessidade da função de cauda em arquivos em lotes. É chamado "mtee", e é grátis. Eu o incorporei em um arquivo em lotes no qual estou trabalhando e faz o trabalho muito bem. Apenas certifique-se de colocar o executável em um diretório na instrução PATH e pronto.
Respostas:
Eu sugiro instalar algo como o GNU Utilities for Win32 . Tem a maioria dos favoritos, incluindo cauda.
fonte
tail
em um arquivo de 2 GB e ele engasgou.more
funcionou bem (pelo menos, vendo o início do arquivo).head
mas nãotail
... Idéias?tail
:)Se você usa o PowerShell, isso funciona:
Postar o comentário de Stefan abaixo, para que as pessoas não percam
O PowerShell 3 apresenta um parâmetro -Tail para incluir apenas as últimas x linhas
fonte
tail
pode ser útil) (2) não é tão dinâmico quanto eu gostaria (talvez devido a alterações no sistema OS / arquivos entre minha configuração e outros pôsteres ?). Ou seja, eu determinei que o shellGet-Content
às vezes não é atualizado até executardir
em outro shell.Get-Content -Tail 100 -Wait .\logfile.log
?Eu sempre usei o Baretail para seguir no Windows. É grátis e muito bom.
Edit: para uma melhor descrição do Baretail veja
esta perguntafonte
Você pode obter cauda como parte do Cygwin .
fonte
Qualquer pessoa interessada em um
DOSCMD usa comandos em lote (veja abaixo).Não é perfeito, e as linhas se repetem.
Uso: tail.bat -d tail.bat -f -f
fonte
ping 127.0.0.1 -n 2 > nul
antesgoto followloop
. ele envia dois pings e espera 1 segundo entre eles. Então, deixaria a CPU viver!: Dtimeout /t 2
?Existem várias opções, no entanto, todas elas apresentam falhas com recursos mais avançados.
A cauda do GnuWin32 é de buggy ( α β γ ) - coisas como -f simplesmente não funcionam.
A cauda do UnxUtils parece melhor (-f funciona, mas --pid parece não funcionar, -n mas não --lines = n falha com -f), mas parece ser um projeto morto.
Cygwin é um grande e feio cogumelo, talvez apenas use o pacote DLL e coreutils - mas ainda tem problemas como - o pid não funciona com processos nativos do win32.
fonte
Eu usei Tail For Windows . Certamente não é tão elegante quanto usar
mas então você está usando o Windows. ;)fonte
Com o Windows PowerShell, você pode usar:
fonte
Não vi o Log Expert em nenhum lugar entre as respostas aqui.
É personalizável e é muito bom para pesquisar arquivos de log. Até agora, é o melhor visualizador de log gráfico do Windows para mim.
Infelizmente, este software não está mais disponível. Você pode ler sobre isso em archive.org .
fonte
Se você não deseja instalar nada, pode "criar seu próprio" arquivo em lotes que executa o trabalho a partir dos comandos padrão do Windows. Aqui estão algumas dicas de como fazê-lo.
1) Usando find / c / v "" yourinput.file , obtenha o número de linhas no seu arquivo de entrada. A saída é algo como:
2) Usando for / f , analise esta saída para obter o número 15.
3) Usando set / a , calcule o número de linhas principais que precisam ser puladas
4) Usando for / f "skip = n" pule as linhas da cabeça e faça eco / processe as linhas da cauda.
Se eu encontrar tempo, criarei um arquivo em lote e o postarei aqui.
EDITAR:
tail.bat
fonte
Eu usei o Mtail recentemente e parece funcionar bem. Este é o tipo de GUI como o baretail mencionado acima.
fonte
Baixe o comando tail, parte
Windows Server 2003 Resource Kit Tools
da Microsoft em si.fonte
Experimente o Windows Services for UNIX . Fornece conchas, awk, sed, etc., bem como cauda.
Atualização -: infelizmente, a partir de 2019, esse sistema não estará mais disponível no Centro de Download da Microsoft.
fonte
Eu prefiro o TailMe devido à possibilidade de assistir vários arquivos de log simultaneamente em uma janela: http://www.dschensky.de/Software/Staff/tailme_en.htm
fonte
O DOS não possui comando de cauda; você pode baixar um binário do Windows para o GNU tail e outras ferramentas GNU aqui .
fonte
Outra opção seria instalar o MSYS (que é mais leve que o Cygwin).
fonte
O DOS
type
funciona como o * nuxcat
, embora apenascat
despeje o arquivo inteiro, então não é realmente verdadetail
, mas estará disponível rapidamente sem fazer o download / instalar umtail
substituto verdadeiro .fonte
Acabei de escrever este pequeno script em lote. Não é tão sofisticado quanto o "rabo" do Unix, mas espero que alguém possa adicioná-lo para melhorá-lo, como limitar a saída às últimas 10 linhas do arquivo, etc. Se você melhorar este script, envie-o para mim em roubar ~ [at] ~ gmail.com.
fonte
echo.
com um ponto à direita na palavra (e não como um argumento separado), imprimirá uma única nova linha.O
tail
comando e muitos outros estão disponíveis no pacote Windows Resource Kit Tools .fonte
Se você deseja usar as portas Win32 de alguns utilitários Unix (em vez de instalar o Cygwin), eu recomendo os utilitários GNU para Win32 .
Peso mais leve que o Cygwin e mais portátil.
fonte
Instale o MKS Toolkit ... Para que você possa executar todos os comandos Unix no Windows.
O comando é:
fonte
No Far Manager , pressione F3um arquivo para entrar no visualizador padrão, depois oEnd tecla para navegar até o final do arquivo.
Se o arquivo for atualizado, o Far Manager o rolará automaticamente.
fonte
Estou usando o Kiwi Log Viewer . É grátis.
fonte
Os visualizadores de log gráficos, embora possam ser muito bons para exibir arquivos de log, não atendem à necessidade de um utilitário de linha de comando que possa ser incorporado aos scripts (ou arquivos em lote). Geralmente, um comando simples e de uso geral pode ser usado como parte de uma solução especializada para um ambiente específico. Os métodos gráficos não se prestam prontamente a esse uso.
fonte
Você pode tentar o WinTail também.
ََ
fonte
Acho que encontrei um utilitário que atende à necessidade da função de cauda em arquivos em lotes. É chamado "mtee", e é grátis. Eu o incorporei em um arquivo em lotes no qual estou trabalhando e faz o trabalho muito bem. Apenas certifique-se de colocar o executável em um diretório na instrução PATH e pronto.
Aqui está o link:
mtee
fonte