O que é
O significado literal de tail é extremidade, borda, final. O comando tail, por padrão, imprime as últimas 10 linhas de cada arquivo no seu terminal. Este comando é particularmente útil quando você está desenvolvendo um bash script e precisa selecionar apenas parte de uma informação para utilizá-la dentro de uma função, por exemplo. Ficou confuso(a)? Aqui vai um exemplo de como o tail functiona:
Exemplo de utilização
No WP-CLI existe o comando wp plugin list que lista todos os plugins existentes em uma instalação WordPress. A saída deste comando será algo conforme demonstrado a seguir:
wp plugin list --format=csv
name,status,update,version
genesis-columns-advanced,active,available,1.1.0
recent-facebook-posts,active,available,2.0.8
wordpress-seo,active,available,3.3.1
Observação: eu utilizei a opção –format=csv apenas para mudar o formato da saída para valores separados por vírgula.
Para poder utilizar esta saída em um bash script que estava escrevendo, eu precisei remover a primeira linha (o cabeçalho deste output). Como eu fiz isso? Utilizando o tail:
wp plugin list --format=csv | tail -n +2
E o resultado obtido foi:
genesis-columns-advanced,active,available,1.1.0
recent-facebook-posts,active,available,2.0.8
wordpress-seo,active,available,3.3.1
Veja que a primeira linha com o cabeçalho do output (name,status,update,version) foi removida! Neste caso o argumento -n +2 foi utilizado para que o tail exibisse os resultados apenas a partir da segunda linha, ocultando a primeira.
Usando o tail -f para monitorar log de erros
Outra forma bastante comum de se utilizar o comando tail é para monitorar arquivos de log enquanto você está debugando um site. Neste caso você pode utilizar:
tail -f error.log
Este comando mostra as últimas 10 linhas do arquivo error.log e monitora este arquivo em busca de atualizações, ou seja, ele vai continuar a mostrar novas linhas que sejam eventualmente adicionadas ao arquivo error.log no seu terminal. Com este comando você pode, por exemplo, inspecionar seu site em busca de erros de php, nginx, etc e acompanhar os logs sendo atualizados em tempo real no seu terminal.
Outros argumentos que podem ser utilizados
Existem diversos argumentos que podem ser utilizados com tail, a depender do tipo/formato de informação que você deseja obter com eles. Abaixo segue uma listagem dos argumentos que podem ser utilizados com o comando tail. Estes argumentos também podem ser visualizados no seu terminal utilizando o comando man tail.
-c, –bytes=[+]NUM
output the last NUM bytes; or use -c +NUM to output starting with byte NUM of each file
-f, –follow[={name|descriptor}]
output appended data as the file grows;
an absent option argument means ‘descriptor’
-F same as –follow=name –retry
-n, –lines=[+]NUM
output the last NUM lines, instead of the last 10; or use -n +NUM to output starting with line NUM
–max-unchanged-stats=N
with –follow=name, reopen a FILE which has not
changed size after N (default 5) iterations to see if it has been unlinked or renamed (this is the usual case of rotated log files); with inotify, this option is rarely useful
–pid=PID
with -f, terminate after process ID, PID dies
-q, –quiet, –silent
never output headers giving file names
–retry
keep trying to open a file if it is inaccessible
-s, –sleep-interval=N
with -f, sleep for approximately N seconds (default 1.0) between iterations; with inotify and –pid=P, check process P at least once every N seconds
-v, –verbose
always output headers giving file names
-z, –zero-terminated
line delimiter is NUL, not newline
–help display this help and exit
–version
output version information and exit
Comentários