Сценарий для создания файла журнала и отправки по электронной почте

#!/bin/bash who>log.txt top>>log.txt EMAIL="yasni.exe@gmail.com" LOG="/home/projekt/skrypt/log.txt" mail -s "skrypt_logi" ${EMAIL}<${LOG} rm logi.txt

Я установил пакет для использования электронной почты, scrit create log.txt, поместил некоторую информацию в log.txt, но не отправил электронную почту, и она зависает, поэтому мне нужно ее прервать.

-1
задан 31 January 2018 в 04:46

4 ответа

Вы создаете «log.txt» в любом своем текущем каталоге, но затем указываете полный путь, когда хотите его прочитать.

Вы должны использовать свою переменную во всем скрипте:

#!/bin/bash email="yasni.exe@gmail.com" log="/home/projekt/skrypt/log.txt" who > "$log" top -n1 >> "$log" mail -s "skrypt_logi" "$email" < "$log" rm "$log"

Прочитайте последствия безопасности для забывания, чтобы процитировать переменную в оболочках bash / POSIX о важности цитирования ваших переменных.

0
ответ дан 17 July 2018 в 21:52

Скрипт застрял из-за команды 'top'. Это должно быть так:

top -b -n1 >> log.tx

http://manpages.ubuntu.com/manpages/xenial/man1/top.1.html

-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.
0
ответ дан 17 July 2018 в 21:52

Вы создаете «log.txt» в любом своем текущем каталоге, но затем указываете полный путь, когда хотите его прочитать.

Вы должны использовать свою переменную во всем скрипте:

#!/bin/bash email="yasni.exe@gmail.com" log="/home/projekt/skrypt/log.txt" who > "$log" top -n1 >> "$log" mail -s "skrypt_logi" "$email" < "$log" rm "$log"

Прочитайте последствия безопасности для забывания, чтобы процитировать переменную в оболочках bash / POSIX о важности цитирования ваших переменных.

0
ответ дан 23 July 2018 в 22:30
  • 1
    Теперь кажется, что скрипт работает (не застрял в командной строке), но он по-прежнему не отправляет электронную почту и не удаляет файл журнала после sendign email – Frubergos 31 January 2018 в 02:42
  • 2
    @Frubergos, поскольку для вашего ответа это был не ответ ... Я проверил этот скрипт на своем сервере .. да, это работает ... причина, по которой он, вероятно, не работает для вас, заключается в том, что у вас, вероятно, нет набора sendmail или что-то ... поэтому он не знает «как» отправить электронное письмо. Я также попробовал это в своей системе, где у меня нет настройки sendmail. Я получаю сообщение об ошибке `строка 8: mail: command not found`, поэтому, вероятно, поэтому его не отправляет вам по электронной почте или не удаляет журнал, поскольку он сбой при строка 8 – John Orion 31 January 2018 в 04:56
  • 3
    @Frubergos, если вы не видите ошибку .. запустите команду. Конечно, убедитесь, что ее исполняемый файл chmod +x /pathtoscript/scriptname проверяет /var/log/syslog и видит, выводит ли он ошибку об line 8 – John Orion 31 January 2018 в 05:01

Скрипт застрял из-за команды 'top'. Это должно быть так:

top -b -n1 >> log.tx

http://manpages.ubuntu.com/manpages/xenial/man1/top.1.html

-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.
0
ответ дан 23 July 2018 в 22:30

Другие вопросы по тегам:

Похожие вопросы: