Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: email скрипт  (Прочитано 1300 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Путнев Максим

  • Автор темы
  • Активист
  • *
  • Сообщений: 406
  • Иногда происходит революция.
    • Просмотр профиля
    • Мы создаем доверие к технологиям
email скрипт
« : 14 Октября 2008, 13:26:01 »
Как написать скрипт чтобы последний сохраненный файл в определенной папке отправлялся на определенные email адреса

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: email скрипт
« Ответ #1 : 14 Октября 2008, 15:27:19 »
Как обычно, в текстовом редакторе. В cat набивать будет довольно неудобно.

name=`ls -t1 | head -1`

А дальше надо читать маны по mail, я не помню синтаксис.

Кажется можно обойтись простым cat `ls -t1 | head -1` | mail

Еще с помощью find можно имя файла получить, да, кстати, и отправить по емылу тоже. Только надо почитать, как ограничить поиск одним результатом.
« Последнее редактирование: 14 Октября 2008, 15:30:46 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Путнев Максим

  • Автор темы
  • Активист
  • *
  • Сообщений: 406
  • Иногда происходит революция.
    • Просмотр профиля
    • Мы создаем доверие к технологиям
Re: email скрипт
« Ответ #2 : 14 Октября 2008, 15:44:01 »
а поподробнее можно?

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: email скрипт
« Ответ #3 : 14 Октября 2008, 16:49:42 »
Куда уж подробнее?

ls -t1 выводит список файлов в текущей директории, отсортированных по времени последнего обновления и в одну колонку (см. man ls).
"| head -1 " достает из этого списка первую строку (имя самого последнего файла, см man head).

Все вместе в обратных кавычках дает интерпретатору указание подставить это имя в команду вместо содержимого упомянутых кавычек (cм http://tlanvar.blogspot.com/2007/07/bash-1.html).

Дальше надо почитать man mail и понять, как с ее помощью отправить по почте файл (у меня не установлен этот пакет, поэтому я не могу почитать мануалы, устанавливать же их или искать в инете - лень (ответы в форуме набирать не лень)).

Если все это надо делать в цикле, то можно использовать while

#!/bin/bash

while true ; do
name=`ls -t1 | head -1`
mail  (и что-нибудь с $name)
sleep 5m
done
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: email скрипт
« Ответ #4 : 14 Октября 2008, 19:06:36 »
Если файл текстовый, можно просто через палку его отправлять: cat $name | mail адреса
Если файл бинарный, можно mutt-ом отправлять его во вложении: mutt -a $name -s "SUBJECT" адреса

http://www.panix.com/~kylet/unix-att.html
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Путнев Максим

  • Автор темы
  • Активист
  • *
  • Сообщений: 406
  • Иногда происходит революция.
    • Просмотр профиля
    • Мы создаем доверие к технологиям
Re: email скрипт
« Ответ #5 : 15 Октября 2008, 16:36:11 »
Простите за тупость. Есть каталог /home/admax/Работа и  в этом каталоге файлы 1.doc 2.doc 3.doc....  Нужно чтобы последний сохраненный файл в папке работа отправлялся на адрес к примеру ubuntu@google.com.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: email скрипт
« Ответ #6 : 16 Октября 2008, 15:15:10 »
Эти доки чем создавались?
Если вордом, то они бинарные, если лексиконом (был в древности такой текстовый редактор), то текстовые.
Лучше муттом отправлять.

dir=/home/admax/Работа
address=ubuntu@google.com
subject=Работа

mutt -a`ls $dir -t1 | head -1` -s "$subject"  $address
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.033 секунд. Запросов: 25.