1 (edytowany przez KooT 2010-12-20 23:19:20)

Temat: cron problem ze skryptem

Mam sobie skrypta w pythonie:

#!/root/system/usr/bin/python
import subprocess

p = subprocess.Popen([r"snmpget","-v","1","-c","public","-Oqv","-Ln", "192.168.1.1","1.3.6.1.2.1.2.2.1.10.7"], stdout=subprocess.PIPE).communicate()[0]
data = [r"curl","-d","iface_id=1&content="+ str(p).rstrip() ,"http://192.168.1.5:8080/stat/add_istat/"]
a = subprocess.Popen(data, stdout=subprocess.PIPE).communicate()[0]

Generalnie pobiera po snmp statystyke interfejsu sieciowego, a pozniej curlem pcha to po http do serwera... wszystko uruchamiane z palca na openwrt działa ok.

root@OpenWrt:~/python# ./w.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0    34    0     6    0    28     43    200 --:--:-- --:--:-- --:--:--     0

ale po dodaniu wpisu do crontab:
0-55/5 * * * * /root/python/w.py

nic się nie dodaje sad Nie wiem też za bardzo jak jakies logi odczytac jak dodalem > /root/log.txt to nic tam nie ma... help

2

Odp: cron problem ze skryptem

myśle ze */5 zamiast 0-55/5 by starczylo wink
masz orochomione crond?
zapis jest w /etc/crontabs/root ?

3

Odp: cron problem ze skryptem

patryk napisał/a:

myśle ze */5 zamiast 0-55/5 by starczylo wink
masz orochomione crond?
zapis jest w /etc/crontabs/root ?

Skrypt się odpala co 5 min, tylko że nic nie wysyła neutral

Dec 20 23:30:01 OpenWrt cron.err crond[1039]: USER root pid 16141 cmd /root/python/w.py

4

Odp: cron problem ze skryptem

A masz faktycznie w /root/system/usr/bin/python tego pythona?

Najprawdopodobniej ściezek nie ma, wiec uruchamiaj to jako

/root/system/usr/bin/python /root/python/w.py
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: cron problem ze skryptem

root@OpenWrt:~# ls -lah /root/system/usr/bin/python
lrwxrwxrwx    1 root     root            9 Dec 15 10:44 /root/system/usr/bin/python -> python2.6

Dodałem też pełne ścieżki do curl i snmpget i dalej nic sad

6

Odp: cron problem ze skryptem

To wstaw do tego skryptu jako pierwszą (znaczy się drugą) linię zwykłe echo czegoś do pliky /tmp/test.txt i zobacz czy się zrobi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: cron problem ze skryptem

Przerobiłem to tak, żeby python pukał POSTEm zamiast wywoływać curla z systemu i działa smile

url = 'http://192.168.1.5:8080/stat/add_istat/"' # write ur URL here

values = {'iface_id' : '1', #write ur specific key/value pair
          'content' : str(p).rstrip(),
         }
try:
   data = urllib.urlencode(values)
   req = urllib2.Request(url, data)
   response = urllib2.urlopen(req)
   the_page = response.read()
   print the_page
except Exception, detail:
   print "Err ", detail

8

Odp: cron problem ze skryptem

Ha, to wróć tak jak było i zobacz czy będzie działać jak podasz pełną ścieżkę do curl'a.

A tak swoją drogą - jeżeli to jest tylko odczytanie z snmp i wywołanie curla to czemu to jeszcze jest pythonie a nie prostym skryptem w shellu?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: cron problem ze skryptem

Cezary napisał/a:

Ha, to wróć tak jak było i zobacz czy będzie działać jak podasz pełną ścieżkę do curl'a.

A tak swoją drogą - jeżeli to jest tylko odczytanie z snmp i wywołanie curla to czemu to jeszcze jest pythonie a nie prostym skryptem w shellu?

Podawałem też pełną ścieżkę do curla i też nie działało, printowałem do pliku różne dane, try excepty i nie działało, już się poddałem smile

A jest w pythonie, bo będzie tam jeszcze kilka innych rzeczy. Np wyliczanie podpisu jakimś algorytmem, bo później dane będą wysyłane do Google AppEngine do publicznej strony.
Jak tylko przyjdzie mi płytka z Hongkongu z Arduino to będzie też zaczytywanie np. temperatury z kilku czujników.
A na stronie AppEngine ładne wykresy robione http://code.google.com/p/flot/ i może coś więcej smile
Jak na razie to wersja mocno podstawowa skryptu ;]
W pythonie na OpenWrt nie udało mi się jedynie znaleźć jakiejś bibloteki do snmp, dlatego zewnętrznym programem snmpget jest robione.
Dzięki za pomoc!

10

Odp: cron problem ze skryptem

O, ok, myślałem że to tylko tyle będzie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: cron problem ze skryptem

O, ok, myślałem że to tylko tyle będzie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12

Odp: cron problem ze skryptem

O, ok, myślałem że to tylko tyle będzie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.