Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Linux / Bash / C - Gdy do folderu trafi plik, zostanie wysła
http://forum.freesco.pl/viewtopic.php?f=34&t=18851
Strona 1 z 1

Autor:  mes mariusz [ czwartek, 14 lutego 2013, 16:09 ]
Tytuł:  Linux / Bash / C - Gdy do folderu trafi plik, zostanie wysła

Witam.

Chcę na moim Raspbery Pi uzyskać funkcjonalność wysłania mailem pliku txt w momencie jak tylko znajdzie się on w folderze i po wysłaniu wykasowanie go.

Założenie jest takie. Pewna aplikacja loguje raporty o błędach w postaci pliku tekstowego log.txt folderze /home/messages

Chcę, żeby jakaś aplikacja nieustająco nadzorowała folder /home/messages i jak tylko znajdzie się tam plik o wskazanej nazwie wyśle maila o takiej właśnie zawartości (treść pliku log.txt).

Czy jest na to jakiś prosty sposób? Skrypt działający w tle uruchomiony jako proces, który csły czas sprawdza, czy folder jest pusty, a jeśli nie to wysyła plik mailem i kasuje ten plik?

Autor:  Maciek [ czwartek, 14 lutego 2013, 18:50 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

To się da zrobić.
Musiałby to być skrypt z pętlą zawierający sleep (tu wartość uśpienia w ewentualnym oczekiwaniu) a potem for plik polecenie mail i rm plik. Z tym, że to może być dość zasobożerne.

Autor:  mes mariusz [ czwartek, 14 lutego 2013, 19:49 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Wolał bym nie instalować serwera poczty, a zamiast tego wykorzystać zewnętrzne konto gmail. Tylko nie mam pojęcia jak sprawić, by system wykorzystywał zewnętrzne konto poczty zamiast własnego serwera.

Autor:  Kimas [ czwartek, 14 lutego 2013, 20:42 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Maciek pisze:
To się da zrobić.
Musiałby to być skrypt z pętlą zawierający sleep (tu wartość uśpienia w ewentualnym oczekiwaniu) a potem for plik polecenie mail i rm plik. Z tym, że to może być dość zasobożerne.

albo pominąć sleepa i użyć crona :)

Autor:  Maciek [ czwartek, 14 lutego 2013, 21:30 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Można zastosować cron, ale...
- co będzie, jeśli kolega zechce to coś uruchamiać częściej niż co minutę?
- co będzie, jeśli skrypt nie wykona się w minutę?
Cron nie ma blokady włączenia czegoś, jeśli to coś już jest uruchomione. Przykładem mogą być problemy z mrtg wpisanym do crona zamiast z opcją sleep.
Skrypt z zastosowaniem sleep jest liniowy:
1. czytam plik
2. wysyłam zawartość pliku
3. kasuję plik
4. sleep
5. zaczynam znów pkt 1.
Co do zastosowania zewnętrznego konta np. gmail to raczej czarno to widzę. Skrypt musiałby się zalogować do konta, być w interakcji z serwerem mailowym, umieć podać hasło, potrzebny byłby bardzo skomplikowany skrypt z zastosowaniem programu expect.

Autor:  mes mariusz [ czwartek, 14 lutego 2013, 22:37 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Czyli jednak lepiej postawić serwer poczty. Kolejna usługa, która obciąży Raspbery.

Autor:  Maciek [ czwartek, 14 lutego 2013, 23:02 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Niekoniecznie. Ja to robilem tak na NND, że potrzebując jakichś tam maili o stanie serwerów, instalowałem exima i nie pracował on jako demon. Po minimalnej prawidłowej oczywiście konfiguracji służył tylko do wysyłania komunikatów. Na swoim serwerze odbierającym dodałem ten wysyłający do białej listy (greylisting uniemożliwiłby docieranie tej poczty, bo exim nie ponawiałby wysyłki).

Autor:  mes mariusz [ czwartek, 14 lutego 2013, 23:13 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Maciek pisze:
Niekoniecznie. Ja to robilem tak na NND, że potrzebując jakichś tam maili o stanie serwerów, instalowałem exima i nie pracował on jako demon. Po minimalnej prawidłowej oczywiście konfiguracji służył tylko do wysyłania komunikatów. Na swoim serwerze odbierającym dodałem ten wysyłający do białej listy (greylisting uniemożliwiłby docieranie tej poczty, bo exim nie ponawiałby wysyłki).


Ok, biorę to rozwiązanie pod uwagę. Napiszę jednak, że znalazłem też rozwiązania dla zewnętrznych serwerów:

http://www.goldenline.pl/forum/2902836/ ... weram-smtp

(Sendmail, ssmtp, msmtp, heirloom-mailx)

A jak sądzi reszta? (mowa o Raspbery z Raspbianem). Zewnętrzny? Czy usługa uruchamiana na czas wysłania maila? Zakładam masę problemów z wysyłąniem maili, z dynamicznego IP. No właśnie, zapomniałem wspomnieć. Raspbery będzie się łączył póki co przez łącze ze zmiennym IP.

Autor:  mes mariusz [ piątek, 15 lutego 2013, 10:21 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Jeszcze takie coś:

http://mitchtech.net/connect-raspberry- ... tter-more/

Tyle, że to Pythona wymaga.

Autor:  Maciek [ piątek, 15 lutego 2013, 13:08 ]
Tytuł:  Re: Linux / Bash / C - Gdy do folderu trafi plik, zostanie w

Jeśli to zadziała, to jest to jakimś rozwiązaniem. Python nie działa jako demon, więc nie obciąży działania systemu na staąłe.

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/