como forçar a 'tela -L' a sobrescrever o log?

3

Eu quero executar alguns trabalhos de cálculo longos em segundo plano. Eu escolho screen . No entanto, eu achei que a tela não aceitou o redirecionamento. por exemplo

screen -dmS name ls>ls.dat

não gera ls.dat .

Felizmente, screen -L enviará o log da tela para um arquivo. No entanto, o que ele faz é anexar ao arquivo de log anterior, mesmo se eu pkill screen e iniciar uma nova tela nova.

Existe uma maneira de forçá-lo a sobrescrever o arquivo de log anterior ao iniciar uma nova tela?

    
por user15964 30.04.2016 / 04:00

1 resposta

3

Não acredito que você possa forçar a tela a sobrescrever o log. Ele registra em screenlog.%n por padrão, onde %n é o número da janela da tela (portanto, cada janela tem seu próprio log). Se esse arquivo existir, ele será anexado a ele.

No entanto, você pode dizer a screen para usar um nome de arquivo diferente, incluindo um registro de data e hora, para obter um novo arquivo de registro a cada vez, mas precisará gerenciar os registros antigos.

Em .screenrc você pode colocar a seguinte linha,

logfile /path/to/log/screenlog-%n-%Y%m%d-%c:%s

para criar arquivos de log que incluem o número da janela ( %n ) e o ano, mês, data e hora.

Como alternativa, você pode criar um bash alias que exclua o arquivo de registro antes de executar a tela, por exemplo,

alias screen='rm /path/to/log; screen'

Se você quiser afetar screen arquivos de log no diretório atual, basta remover /path/to/log/ dos comandos acima.

Por fim, dependendo do que você está tentando alcançar, a ferramenta do Linux script pode ser mais útil do que apenas efetuar login em screen . man script para mais informações.

    
por 30.04.2016 / 06:52