Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: Диян Господинов в Dec 28, 2008, 22:39



Титла: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 28, 2008, 22:39
Здравейте
Имам следния проблем
Търся си скрипт който да може да праща информация за сървара след като се рестартира(при зареждането) примерно с какво ип е в момента.
На Бтк съм (Adsl)и се сменя при всяко рестартиране на модема до колкото знам.
Искам като патувам да знам в момента машината ми с какво ИП е и да мога да се логна в нея.
Някакви идеи? Дори и да не е с смс-и нещо подобно?
Мерси предварително.



Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: petkouzunski в Dec 28, 2008, 22:54
Скрипт не знам, но примерно no-ip.org може и да помогне. Повече информация тук ($2)


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: runtime в Dec 29, 2008, 00:05
mail2sms за mtel и globul също би могло да ти свърши работа.


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: neter в Dec 29, 2008, 02:01
Тук ($2) приказвахме по въпроса ;)


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 29, 2008, 08:37
Прочетох темите наистина полезни са.
Но къде греша аз?
Скрипта ми представлява това

 #!/bin/bash
      file_with_ip=/var/www/htdocs/index.html
      from=xxxxx@abv.bg
      to=359xxxxxxxxx@sms.mtel.net
      wget -q http://whatismyip.org
      mail -a "From: $from" -t $to < "$file_with_ip"


във папката htdocs имам създаден фаил индекс който садържа единствено ип-то ми в момента.

След като стартирам скрипта ми изписва тази грешка
From: xxxxxx@abv.bg: No such file or directory


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: zeridon в Dec 29, 2008, 10:29
Сложи променливите в единични кавички и си оправи заявката с wget-a че така няма да стане точно това което си мислиш


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 29, 2008, 13:52
а имате ли нещо като пример как да оправя заявката?
Извинявам се малко съм бос все още..
Как точно трябва да представлява сорса?


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: vstoykov в Dec 29, 2008, 14:20
Преди време бях правил подобни неща:
http://vstoykov.hit.bg/sensors_send_sms.html


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: neter в Dec 29, 2008, 15:12
Теглене на index.html с wget не е съвсем красив подход, ако изтегленият index.html няма да се ползва и за други цели. По-добре е да се използва curl. Ето примера, който си показал, редактиран с използване на curl
Код
GeSHi (Bash):
  1. #!/bin/bash
  2. ip=`curl -s http://whatismyip.org`
  3. from='xxxxxx@abv.bg'
  4. to='359xxxxxxxxx@sms.mtel.net'
  5. echo "$ip" | mail -a "From: $from" -t $to
Ако нямаш curl, инсталирай си го. Сега, това с кавичките... пробвах го без кавички под няколко дистрибуции и бих заключил, че точно тези стойности на променливите не изискват кавички. Поне при мен проблем няма. Но пък знам ли, може в някаква специфична среда да се изискват тези кавички, въпреки че стойностите на променливите не ги задължават. От грешката, която ти излиза, не става ясно кой "From" се има предвид. Може проблемът да не е при задаването на променливата "from", а да е при изписването хедърите на писмото, където имаме "From: адрес". Принципно няма грешки в скрипта, които да предизвикат това, но може да има някаква специфика в твоята система. Опитът ще покаже. Сложи кавички на стойностите на променливите. Ако пак излиза същата грешка, пробвай да махнеш хедърите от mail командата, за да се види да не би там да става грешката. Т.е., редът да стане така
Код
GeSHi (Bash):
  1. echo "$ip" | mail -t $to


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 29, 2008, 15:39
@neter
Може би аз греша някъде..
From: xxxxxx@abv.bg
: No such file or directory
Имам curl.
Дистрибуцията ми е Слак 10.1
а при
> echo "$ip" | mail -t $to
Restoring deleted header lines
No message, no subject; hope that's ok
No recipients specified


@vstoykov
по късно ще пробвам с тези  2 скрипта че от тук нямам достъп до машината през SSH за да проверя за lm_sensors


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: neter в Dec 29, 2008, 15:55
То така както си го изпълнил echo-то самостоятелно е нормално да изкара тези съобщения, тъй като променливите в реда не са зададени. Имах предвид да го вкараш така без хедъри вътре в скрипта и да пробваш. Ако си сложил вече кавичките и пак ти вади тази грешка за несъществуващия файл, то значи проблемът наистина е в изписването на хедърите към писмото. Пробвай да изпълниш този ред самостоятелно (извън скрипта) и виж какво ще стане
Код
GeSHi (Bash):
  1. echo "proba" | mail -t 359xxxxxxxxx@sms.mtel.net
Прегледай и какъв е синтаксисът на mail командата при теб, защото mail има две разновидности с различен синтаксис. Т.е., зачети се в документацията, която вади тази команда
Код
GeSHi (Bash):
  1. man mail
Може и да ни покажеш (приложиш) извадката от тази документация, за да се зачетем и ние в документацията на твоята mail команда.


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 29, 2008, 16:01
Това изписва ако се използва самостоятелно
> echo "proba" | mail -t 359xxxxxxxxx@sms.mtel.net
No recipients specified
 
Като намеря необходимото от маил ще пиша пак че от тук не мога да го отворя.


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: neter в Dec 29, 2008, 16:08
Ти ме озадачаваш :) При едната mail команда този ред би трябвало да работи, а при другата mail команда би трябвало да ти изпише за несъществуваща опция "-t". Има ли и трети вариант на mail командата?... Определено ще е интересно да се хвърли око на документацията на твоята mail команда :)


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: vstoykov в Dec 29, 2008, 16:29
Не си пишете email адесите на телефоните, защото не е приятно в 3:00 сутринта да ти пратят спам по телефона...


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: vstoykov в Dec 29, 2008, 16:33
@vstoykov
по късно ще пробвам с тези  2 скрипта че от тук нямам достъп до машината през SSH за да проверя за lm_sensors

Няма нужда да ползваш lm_sensors. Просто промени скрипта така:

Код
GeSHi (Bash):
  1. #!/bin/bash
  2. current_dir=$(dirname $0)
  3. cd "$current_dir"
  4.  
  5. date +"%d-%m-%Y %H:%M" > info.txt
  6.  
  7. curl -s http://whatismyip.org >> info.txt
  8.  
  9. php ./sensors_sms.php
  10.  

Но не е задължително да ползаш телефона си за да получаваш информация за IP адреса. Може да се логваш като напишеш "ssh  user@потребителско-име.dynalias.net":
http://slackwareart-bg.blogspot.com/2007/07/dns.html

Недостатъкът на този метод е, че не само ти ще получаваш информация за IP адреса си. При ползвне на SMS е малко по трудно друг да научи какъв е IP адреса ти.



Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 29, 2008, 16:51
sh RunMe.bash
RunMe.bash: line 3: cd: .

: No such file or directory
PHP Warning:  main(./phpgmailer/class.phpgmailer.php): failed to open stream: No such file or directory in /var/www/htdocs/sensors_sms.php on line 10
PHP Fatal error:  main(): Failed opening required './phpgmailer/class.phpgmailer.php' (include_path='.:/usr/lib/php') in /var/www/htdocs/sensors_sms.php on line 10

папката  /phpgmailer
съдържа
class.phpgmailer.php
class.smtp.php
phpmailer.lang-en.php



Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: neter в Dec 29, 2008, 16:53
//offtopic

Не си пишете email адесите на телефоните, защото не е приятно в 3:00 сутринта да ти пратят спам по телефона...

Правилно. И мен ме хвана инерцията... :)


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 29, 2008, 18:58
@vstoykov
между другото има създаден фаил dead.leter и вътре в него има текст
proba
Date: Mon, 29 Dec 2008 16:34:49 +0200
User-Agent: nail 11.20 1/13/05
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

също така и си създава фаил с име info.txt\r
и в него е записано ИП-то в момента.




това е създадено когато пробвах да напиша самостоятелнно
echo "proba" | mail -t 359888847124@sms.mtel.net

а когато пробвам да стартирам този скрипт

      #!/bin/bash
      file_with_ip=/var/www/htdocs/index.html
      from=fantamaniaka@abv.bg
      to=359888847124@sms.mtel.net
      wget -q http://whatismyip.org
      mail -a "From: $from" -t $to < "$file_with_ip"

създава в главната дир index.html със съдържание ип-то.
и дава следната грешка
From: fantamaniaka@abv.bg: No such file or directory


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: vstoykov в Dec 30, 2008, 01:32
Папката "phpgmailer" не трябва да е "/phpgmailer", a "./phpgmailer" - забележи точката преди "/" - това значи, че трябва да е в текущата директория - там, където се намира скрипта RunMe.bash. Същата директория трябва да е достъпна за потребителя, който стартира скрипта. В нея скрипта RunMe.bash записва файла info.txt.

При мен файловете са разположени така:
Код:
$ find
.
./RunMe.bash
./info.txt
./phpgmailer
./phpgmailer/class.phpgmailer.php
./phpgmailer/class.smtp.php
./phpgmailer/phpmailer.lang-en.php
./sensors_sms.php

"./" означава, че съответния файл е в текущата директория (там, където сме в момента, в който пишем "find" - например /home/user/sms - не е добра идея да се слага в /var/www/htdocs (от съображения за сигурност - ако има пуснат уеб сървър всеки може да активира пращането на SMS)).

Стартирането на скрипта RunMe.bash става така:
Код:
chmod +x RunMe.bash
./RunMe.bash



Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 30, 2008, 09:02
Пак греда...
но къде ли евентуално аз мога да греша?
грешката в момента е следната

root@adslrouter:/home/fanta/Install/sms# ./RunMe.bash
: bad interpreter: No such file or directory

Къде може да е проблема?

$find

./sensors_sms.php
./RunMe.bash
./info.txt
./phpgmailer
./phpgmailer/class.phpgmailer.php
./phpgmailer/class.smtp.php
./phpgmailer/phpmailer.lang-en.php
./phpgmailer/sensors_sms.php


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: BULFON в Dec 30, 2008, 09:24
Може и да имаш следната постановка - сървър с bluetooth, който е сдвоен с някакъв телефон, оставен включен в адаптера си, и ползваш gnokii:

echo "new ip is:"$ip | gnokii --sendsms 0123456789


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 30, 2008, 09:31
Мерси за идеята но ако не стане с този скрипт тогава евентуално може да помисля за телефон.
В момента нямам апарат с бл* свободен :)
Мерси за идеята все пак :))


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: vstoykov в Dec 30, 2008, 14:58
Когато пишеш скриптове на Bash, прървия ред трябва да е:

Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  

При изпълнение на скрипта, системата търси програмата "/bin/bash", която изпълнява скрипта. Ако излиза съобщение за грешка "bad interpreter: No such file or directory" значи имаш грешка в първия ред или програмата "/bin/bash" не е инсталирана.

Напиши:

Код:
valentin@darkstar:~$ which bash
/usr/bin/bash
valentin@darkstar:~$

за да видиш дали имаш bash. Може да се наложи да напишеш
Код
GeSHi (Bash):
  1. #!/usr/bin/bash
  2.  

на първия ред, защото пътя е друг.


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: PsYhLo в Dec 30, 2008, 16:50
използвай http://www.dyndns.com/services/ по лесно е и трябва да запониш само един domain от типа
neshtosi.mine.nu и хората са си направили програмка за автоматично обновяване на ip-то при промяна която програмка стои в https://www.dyndns.com/support/ и в зависимост от ОС се променя url-а за програмката ;)


Титла: Re: Търся скрипт за смс-и който да оповестяват даден потребител или нещо подобно
Публикувано от: Диян Господинов в Dec 30, 2008, 20:01
@vstoykov
МЕРСИ Много :))
Точно там е бил проблема като промених първия ред да бъде
#!/usr/bin/bash
и си тръгна без проблем
Мерси много още веднъж и весели празници.