Расписание отправки почты содержимого файла журнала

У меня установлен агент почты postfix, и я настроил gmail-ретрансляцию, и я мог отправлять письма с терминала, как показано ниже:

root@statino1:~# mail -s "subject_here" my_gmail_id@gmail.com CC: <hit enter for empty cc> Type the mesage here press Ctrl+d

Мне нужно отправить содержимое файла журнала как почту и планировать его для запуска каждый день.

Как отправить содержимое файла журнала в виде почтового сообщения, как мне автоматизировать входы команды mail? так что я могу запланировать его. У кого-нибудь есть идея?

6
задан 10 March 2011 в 08:28

10 ответов

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

mail -s 'Subject' you@example.com  < log.txt

mail ожидает поток ввода, если его нет, он получает стандартный ввод (т. е. позволяет вам вводить что-то) , Оператор < (unix file-stream) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:

Отправка файлов в виде почтовых вложений

Если вы хотите проверить, пустой ли файл или нет, вы можете выполнить тест следующим образом:

if [ -s test.txt ];
then
    echo "file is not empty";
fi

Итак, ваша команда будет выглядеть так:

if [ -s log.txt ]; then mail -s 'Subject' you@example.com  < log.txt; fi
5
ответ дан 25 May 2018 в 22:38
  • 1
    ничего себе, пропустит ли он cc :? Я хочу, чтобы он был пропущен. Я попробую и дам вам знать! – user3215 8 March 2011 в 17:38
  • 2
    Отлично! Еще одна вещь: можно ли настроить точную настройку отправки только в том случае, если файл журнала не пуст. Если файл журнала имеет что-то в нем, то отправляйте, например, проверяя размер файла или что-то – user3215 8 March 2011 в 17:59
  • 3
    @ user3215, конечно, вы можете проверить, имеет ли файл что-то в нем, я добавил его в ответ. (пожалуйста, дайте мне знать, если это сработает) – Stefano Palazzo♦ 8 March 2011 в 18:37
  • 4
    Потрясающие!!!. оно работает. когда я проверил файл syslog без какой-либо почтовой команды, он не распечатывал " файл не пуст & quot ;. Я проверил вашу последнюю строчку, редактируя ее, и она отлично работала. Большое спасибо!. Администраторы, подобные вам, облегчают жизнь другим, иначе мне придется потратить месяцы на поиск этого ключевого слова? не знаю. В любом случае, спасибо снова – user3215 9 March 2011 в 09:12

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

mail -s 'Subject' you@example.com < log.txt

mail ожидает поток ввода, если его нет, он получает стандартный ввод (т. е. позволяет вам вводить что-то) , Оператор < (unix file-stream) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:

Отправка файлов в виде почтовых вложений

Если вы хотите проверить, пустой ли файл или нет, вы можете выполнить тест следующим образом:

if [ -s test.txt ]; then echo "file is not empty"; fi

Итак, ваша команда будет выглядеть так:

if [ -s log.txt ]; then mail -s 'Subject' you@example.com < log.txt; fi
5
ответ дан 25 July 2018 в 22:22

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

mail -s 'Subject' you@example.com < log.txt

mail ожидает поток ввода, если его нет, он получает стандартный ввод (т. е. позволяет вам вводить что-то) , Оператор < (unix file-stream) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:

Отправка файлов в виде почтовых вложений

Если вы хотите проверить, пустой ли файл или нет, вы можете выполнить тест следующим образом:

if [ -s test.txt ]; then echo "file is not empty"; fi

Итак, ваша команда будет выглядеть так:

if [ -s log.txt ]; then mail -s 'Subject' you@example.com < log.txt; fi
5
ответ дан 26 July 2018 в 21:05

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

mail -s 'Subject' you@example.com < log.txt

mail ожидает поток ввода, если его нет, он получает стандартный ввод (т. е. позволяет вам вводить что-то) , Оператор < (unix file-stream) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:

Отправка файлов в виде почтовых вложений

Если вы хотите проверить, пустой ли файл или нет, вы можете выполнить тест следующим образом:

if [ -s test.txt ]; then echo "file is not empty"; fi

Итак, ваша команда будет выглядеть так:

if [ -s log.txt ]; then mail -s 'Subject' you@example.com < log.txt; fi
5
ответ дан 31 July 2018 в 12:23

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

mail -s 'Subject' you@example.com < log.txt

mail ожидает поток ввода, если его нет, он получает стандартный ввод (т. е. позволяет вам вводить что-то) , Оператор < (unix file-stream) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:

Отправка файлов в виде почтовых вложений

Если вы хотите проверить, пустой ли файл или нет, вы можете выполнить тест следующим образом:

if [ -s test.txt ]; then echo "file is not empty"; fi

Итак, ваша команда будет выглядеть так:

if [ -s log.txt ]; then mail -s 'Subject' you@example.com < log.txt; fi
5
ответ дан 2 August 2018 в 03:50

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

mail -s 'Subject' you@example.com < log.txt

mail ожидает поток ввода, если его нет, он получает стандартный ввод (т. е. позволяет вам вводить что-то) , Оператор < (unix file-stream) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:

Отправка файлов в виде почтовых вложений

Если вы хотите проверить, пустой ли файл или нет, вы можете выполнить тест следующим образом:

if [ -s test.txt ]; then echo "file is not empty"; fi

Итак, ваша команда будет выглядеть так:

if [ -s log.txt ]; then mail -s 'Subject' you@example.com < log.txt; fi
5
ответ дан 4 August 2018 в 19:54

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

  mail -s 'Subject' you@example.com & lt;  log.txt  

mail ожидает поток ввода, если его нет, он получает стандартный вход (т. е. он позволяет вам вводить что нибудь). Оператор & lt; (файловый поток unix) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:


Если вы хотите проверить если файл пуст или нет, вы можете выполнить такой тест:

 , если [-s test.txt];  то echo «файл не пуст»;  fi  

Итак, ваша команда будет выглядеть так:

 , если [-s log.txt];  затем mail -s 'Subject' you@example.com & lt;  log.txt;  fi  
5
ответ дан 6 August 2018 в 03:56

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

  mail -s 'Subject' you@example.com & lt;  log.txt  

mail ожидает поток ввода, если его нет, он получает стандартный вход (т. е. он позволяет вам вводить что нибудь). Оператор & lt; (файловый поток unix) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:


Если вы хотите проверить если файл пуст или нет, вы можете выполнить такой тест:

 , если [-s test.txt];  то echo «файл не пуст»;  fi  

Итак, ваша команда будет выглядеть так:

 , если [-s log.txt];  затем mail -s 'Subject' you@example.com & lt;  log.txt;  fi  
5
ответ дан 7 August 2018 в 21:54

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

  mail -s 'Subject' you@example.com & lt;  log.txt  

mail ожидает поток ввода, если его нет, он получает стандартный вход (т. е. он позволяет вам вводить что нибудь). Оператор & lt; (файловый поток unix) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:


Если вы хотите проверить если файл пуст или нет, вы можете выполнить такой тест:

 , если [-s test.txt];  то echo «файл не пуст»;  fi  

Итак, ваша команда будет выглядеть так:

 , если [-s log.txt];  затем mail -s 'Subject' you@example.com & lt;  log.txt;  fi  
5
ответ дан 10 August 2018 в 10:09

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

  mail -s 'Subject' you@example.com & lt;  log.txt  

mail ожидает поток ввода, если его нет, он получает стандартный вход (т. е. он позволяет вам вводить что нибудь). Оператор & lt; (файловый поток unix) сообщает электронной почте, чтобы прочитать содержимое файла, а не / dev / stdin (это тоже файл).

Добавление вложения кажется немного сложнее:


Если вы хотите проверить если файл пуст или нет, вы можете выполнить такой тест:

 , если [-s test.txt];  то echo «файл не пуст»;  fi  

Итак, ваша команда будет выглядеть так:

 , если [-s log.txt];  затем mail -s 'Subject' you@example.com & lt;  log.txt;  fi  
5
ответ дан 13 August 2018 в 16:30
  • 1
    ничего себе, пропустит ли он cc :? Я хочу, чтобы он был пропущен. Я попробую и дам вам знать! – user3215 8 March 2011 в 17:38
  • 2
    Отлично! Еще одна вещь: можно ли настроить точную настройку отправки только в том случае, если файл журнала не пуст. Если файл журнала имеет что-то в нем, то отправляйте, например, проверяя размер файла или что-то – user3215 8 March 2011 в 17:59
  • 3
    @ user3215, конечно, вы можете проверить, имеет ли файл что-то в нем, я добавил его в ответ. (пожалуйста, дайте мне знать, если это сработает) – Stefano Palazzo♦ 8 March 2011 в 18:37
  • 4
    Потрясающие!!!. оно работает. когда я проверил файл syslog без какой-либо почтовой команды, он не распечатывал & quot; файл не пуст & quot ;. Я проверил вашу последнюю строчку, редактируя ее, и она отлично работала. Большое спасибо!. Администраторы, подобные вам, облегчают жизнь другим, иначе мне придется потратить месяцы на поиск этого ключевого слова? не знаю. В любом случае, спасибо снова – user3215 9 March 2011 в 09:12

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

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