Você caiu no buffer Gotcha. O Perl armazena em buffer sua saída e só grava no disco quando o buffer está cheio. O armazenamento em buffer é uma coisa boa em termos de desempenho, mas a baixas taxas de dados pode ser confuso. Se você esperar o tempo suficiente, notará que seu arquivo está sendo gravado (verifique com tail -F File_1
). Acredito que o buffer padrão tenha 4kB de tamanho.
Adicione $|=1
como abaixo para desativar o buffer em Perl:
vmstat 1 | perl -e '$| = 1; while (<>) { print localtime() . ": $_"; }' > /tmp/fileetje