Redirecionar o caminho do arquivo de log codificado para o diretório do usuário

1

Eu tenho um programa que não posso modificar que é codificado para gravar em um arquivo de log localizado em /tmp/myprogram.log .

Eu preciso poder executar várias cópias deste programa no mesmo servidor que usuários diferentes. Portanto, preciso que os arquivos de log sejam separados.

Eu tentei alterar /tmp/myprogram.log para ser um link simbólico apontando para ~/myprogram.log pensando que isso significaria que o programa gravaria o log no diretório do usuário de qualquer usuário em que o programa estava rodando, mas infelizmente é o shell que expande o ~ para que não funcione.

    
por Negs 02.08.2016 / 06:07

2 respostas

1

Eu procuraria obter a fonte do seu programa e alterá-lo. Eu seria um forro. Você poderia até postar essa linha aqui e poderíamos ajudar a mudar isso.

Um chroot sugerido por outros também funcionará.

Isso fala sobre enganar seu programa para escrever em um arquivo diferente ... Eu não consegui compilar, mas a ideia e a discussão estão lá.

link

    
por 02.08.2016 / 07:14
0

Se você postar o código que faz o registro, as pessoas poderão ajudar aqui.

Porque, se for use logger, você poderá ter o arquivo conf ou algum nome de aplicativo por meio do parâmetro especificado, basicamente, algum nome que fará o nome diferente para essas várias instâncias.

O próximo passo será etiquetar logger com esta string e encaminhá-la para um canal personalizado como 'local4'. Para testar você pode logar algumas msg chamando o comando logger -p local4.info -t "YourTAG" "Log message"

Para terminar, configure o rsyslog para capturar essas tags em /etc/rsyslog.d/your.conf :      :syslogtag,contains,"<YourTAG>" -/path/to/name1.log & stop :syslogtag,contains,"<AnotherTAG>" -/path/to/name2.log & stop . local4.* -/path/to/some.log # This will catch all tags which would't be mentioned before. & stop

    
por 02.08.2016 / 13:38

Tags