Ubuntu 16.04LTS Cria Cron Job no cron.daily que exibirá o conteúdo de auth.log para a pasta no diretório inicial de cada usuário?

1

Usuário do Ubuntu 16.04 LTS

Oi pessoal, eu sou um novato aqui e eu tenho procurado esses fóruns e google sem sucesso. Minhas pesquisas não encontraram as informações específicas de que preciso.

Este é um projeto pessoal meu para me ajudar a me acostumar a configurar tarefas e scripts do sistema que serão executados diariamente / mensalmente / a qualquer hora.

Eu já (ineficientemente) criei várias pastas para os 10 a 12 usuários na minha máquina Ubuntu já onde quero que esse trabalho seja executado. Está no seu diretório home em uma pasta chamada 'ulogs'. Essa é a pasta que espero que eu tenha os vários trabalhos que eu crie, salve arquivos para cada usuário no sistema.

Eu sei que este trabalho deve ser criado no cron.daily como um script. Eu sei com que freqüência eu quero executá-lo, talvez duas vezes por dia, em algum momento, mas vai começar com uma vez por dia agora.

No script, qual é o protocolo para salvar o conteúdo / resultado final do trabalho na pasta que eu criei e selecionei onde eu quero salvar um arquivo txt de trabalho?

Para este trabalho, quero salvar o conteúdo do auth.log (o script do cron é basicamente "cat /var/log/auth.log > / home / Users (1-12) / ulogs / daily- signin.txt ")

Quais variáveis posso usar em vez de digitar o nome de usuário e o caminho de todas as pastas em que o arquivo deve ser salvo.

Eu também vou querer acrescentar a data ao final do arquivo, mas eu vou descobrir isso sozinha, eu não posso ter vocês fazendo todo o trabalho. Eu tenho procurado, mas tenho saltado de um site para outro e não encontrei uma maneira eficiente de salvar o arquivo no caminho de cada pasta de usuários.

Por favor, ajude!

    
por Final Luminary 03.12.2017 / 05:49

1 resposta

0

O programa a seguir criará um arquivo de texto chamado daily-signin.txt em um diretório chamado ulogs no diretório home de todos os usuários, se você executar isso como root.

#!/bin/bash
path="/path/to/source/file";
for p in 'cat "$path"';
do
log='cat /var/log/auth.log';
mkdir -p /home/$p/ulogs/
echo "$log" >> /home/$p/ulogs/daily-signin.txt
done

Pontos a serem anotados

  1. O arquivo /path/to/source/file contém a lista de usuários em sua máquina. Se qualquer novo usuário for criado e você também quiser obter o arquivo de registro no diretório inicial do usuário, será necessário adicionar o novo nome de usuário no arquivo source.txt.

  2. Como esse arquivo está sendo criado no diretório inicial de outro usuário, você precisará executar esse script de shell com sudo privileges

  3. Se você estiver executando esse script como um cronjob, poderá seguir this para fazer isso.

por Rooney 03.12.2017 / 07:53