Script para criar um arquivo de log e enviar um email

-1
#!/bin/bash

who>log.txt

top>>log.txt

EMAIL="[email protected]"
LOG="/home/projekt/skrypt/log.txt"

mail -s "skrypt_logi" ${EMAIL}<${LOG}

rm logi.txt

Eu instalei o pacote para usar email, scrit create log.txt, coloquei algumas informações em log.txt, mas não enviei e-mail e ele trava, então eu tenho que interrompê-lo.

    
por Frubergos 30.01.2018 / 23:23

2 respostas

0

Você cria "log.txt" em qualquer diretório atual , mas, em seguida, especifica o caminho completo quando quiser ler a partir dele.

Você deve usar sua variável em todo o script:

#!/bin/bash
email="[email protected]"
log="/home/projekt/skrypt/log.txt"

who > "$log"
top -n1 >> "$log"

mail -s "skrypt_logi" "$email" < "$log"

rm "$log"

Leia Implicações de segurança de esquecer de citar uma variável em shells bash / POSIX sobre a importância de citar suas variáveis .

    
por glenn jackman 30.01.2018 / 23:33
0

Script preso por causa do comando 'top'. Deveria ser assim:

top -b -n1 >> log.tx

link

   -b  :Batch-mode operation
        Starts top in Batch mode, which could be useful  for  sending
        output  from  top  to  other  programs or to a file.  In this
        mode, top will not accept input and runs until the iterations
        limit  you've  set with the '-n' command-line option or until
        killed.
    
por Ova 30.01.2018 / 23:37