LinuxForum.Fans
Тема

Скрипт для CRON

Автор: Vector 10 сообщений 2890 просмотров
#354295

Всем привет.
нужен скрипт под Linux-прошивку IP-камеры.
Задача скрипта - через заданные интервалы, с возможностью изменения этих интервалов,
обращаться по заданному URL, с возможностью изменения этих URL
и передавать в параметрах свой MAC-адрес
Linux камеры обрезанная, но нами был установлен cron,
что думаю может существенно облегчить решение задачи.
т.е. возможно можно обойтись скорее всего даже достаточно простым shell-скриптом
Заранее огромное спасибо всем кто откликнется

#354298
"Vector" написал:
Linux камеры обрезанная,

...знать бы ещё, что там осталось из системных утилит, команд оболочки и т.п.

#354300

Может я не правильно написал, это просто потому, что чайник в этом деле(Зато честно :[ )))) Обыкновенная ip камера работающая на linux. Если кто реально поможет в решении моей задачи, готов оплатить так сказать Ваши килокалории)))

#354308

Vector, если до вечера не разберётесь с наличием у вас необходимых системных утилит (я так полагаю, для shell скрипта понадобятся wget, ifconfig, grep,....), могу попробовать написать готовый бинарник, если разберусь с кросс-компиляцией под ARM. Покажите для начала вывод команд

text

$ uname -a
text

$ ifconfig -a

Ну и, наверное

text

$ ls /usr/bin /bin /sbin > out.txt

И содержимое out.txt сюда под спойлер или на pastebin.com.
Более грамотные в администрировании, возможно, меня поправят...

#354309
text
$ uname -a
Linux NetCAM 2.6.32.17-davinci1 #227 PREEMPT Mon Aug 19 19:59:18 KST 2013 armv5t     ejl GNU/Linux
text
$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:30:6F:83:BE:B9
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::230:6fff:fe83:beb9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16369 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28331 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1216264 (1.1 MiB)  TX bytes:29615966 (28.2 MiB)
          Interrupt:52 Base address:0x7000

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:10214 errors:0 dropped:0 overruns:0 frame:0 TX packets:10214 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:725614 (708.6 KiB) TX bytes:725614 (708.6 KiB)

ppp0 Link encap:Point-to-Point Protocol inet addr:178.90.144.63 P-t-P:95.57.145.8 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:14657 errors:0 dropped:0 overruns:0 frame:0 TX packets:27100 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:699593 (683.1 KiB) TX bytes:28920957 (27.5 MiB)

teql0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

#354314

в камере в лучшем случае ash, а скорее hash или вообще msh
наберите help и базибокс все раскажет

#354315
text
GNU bash, version 3.2.48(1)-release (arm-none-linux-gnueabi)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

JOB_SPEC [&] (( expression )) . filename [arguments] : [ arg... ] [[ expression ]] alias [-p] [name[=value] ... ] bind [-lpvsPVS] [-m keymap] [-f fi break [n] builtin [shell-builtin [arg ...]] caller [EXPR] case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir] command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option complete [-abcdefgjksuv] [-pr] [-o continue [n] declare [-afFirtx] [-p] [name[=val dirs [-clpv] [+N] [-N] echo [-neE] [arg ...] enable [-pnds] [-a] [-f filename] eval [arg ...] exec [-cl] [-a name] file [redirec exit [n] export [-nf] [name[=value] ...] or false fc [-e ename] [-nlr] [first] [last for NAME [in WORDS ... ;] do COMMA for (( exp1; exp2; exp3 )); do COM function NAME { COMMANDS ; } or NA getopts optstring name [arg] hash [-lr] [-p pathname] [-dt] [na help [-s] [pattern ...] history [-c] [-d offset] [n] or hi if COMMANDS; then COMMANDS; [ elif kill [-s sigspec | -n signum | -si let arg [arg ...] local name[=value] ... logout popd [+N | -N] [-n] printf [-v var] format [arguments] pushd [dir | +N | -N] [-n] pwd [-LP] read [-ers] [-u fd] [-t timeout] [ readonly [-af] [name[=value] ...] return [n] select NAME [in WORDS ... ;] do CO set [--abefhkmnptuvxBCHP] [-o opti shift [n] shopt [-pqsu] [-o long-option] opt source filename [arguments] test [expr] time [-p] PIPELINE times trap [-lp] [arg signal_spec ...] true type [-afptP] name [name ...] typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit umask [-p] [-S] [mode] unalias [-a] name [name ...] unset [-f] [-v] [name ...] until COMMANDS; do COMMANDS; done variables - Some variable names an wait [n] while COMMANDS; do COMMANDS; done { COMMANDS ; }

/bin: addgroup adduser bash busybox cat catv chgrp chmod chown cp date dd delgroup deluser df dmesg dnsdomainname echo egrep false fgrep grep gunzip gzip hostname iostat ipcalc kill ln login ls mkdir mknod mktemp more mount mountpoint mpstat mv netstat nice pidof ping ping6 ps pwd rm rmdir sed sh sleep stty su sync tar touch true umount uname usleep vi watch zcat

/sbin: arp badblocks depmod dhcpcd freeramdisk getty halt hwclock ifconfig ifdown ifup ifup-local init insmod killall5 klogd logread lsmod makedevs mdev mke2fs mkswap modinfo modprobe pidof pivot_root poweroff ppp-watch reboot rmmod route runlevel sfdisk shutdown swapoff swapon switch_root sysctl syslogd tc tune2fs vmstat

/usr/bin: [ [[ aplay appmem arecord awk basename bunzip2 bzcat bzip2 chvt clear deallocvt diff dirname du env expr find free ftp fuser hd head hexdump id ipcrm ipcs killall killall5 last logger lsusb nslookup openvt passwd pmap pscan ptzinst reset setsid snsinst sort strings tail telnet test time top traceroute traceroute6 tree tty unzip uptime wc which who whoami xargs yes

#354316

ничего не урезано, все очень прилично, да и баш на борту - в камере вполне места и памяти видимо

#354328

если гет, то около того (пост почти так же)

text
(echo -e 'GET / HTTP/1.1\nUser-Agent: Mozilla/5.0 (Windows NT 5.2; rv:16.0) Gecko/20131211 Firefox/25.0\nHost: internet.yandex.ru\n\n'; sleep 3) | telnet internet.yandex.ru 80 | grep 'IPv4:'
#354428

Vector, велосипед, конечно, но мне интересно, заработает или нет :)
Вот бинарник для ARM - http://ubuntuone.com/3QeUj7YO10J83z2TAOBhGR
Параметры запуска:
-intf <имя_интерфейса (по умолчанию eth0)>
-url <http://....?>

Например

text

$ ./sendmactourl -url "http://192.168.1.5?"

Имя параметра для мак адреса вы не указали, я использовал mac.

Исходник:

text

package main

import ( "flag" "log" "net" "net/http" "net/url" )

func main() { var intf, addr string flag.StringVar(&intf, "intf", "eth0", "Set interface name") flag.StringVar(&addr, "url", "", "URL to send data") flag.Parse() if addr == "" { log.Fatal("Error. URL was not defined...") } mac, err := net.InterfaceByName(intf) if err != nil { log.Fatal(err) } v := url.Values{} v.Set("mac", string(mac.HardwareAddr)) resp, err := http.Get(addr + v.Encode()) if err != nil { log.Fatal(err) } defer resp.Body.Close() }

Войдите или зарегистрируйтесь, чтобы ответить.