Всем привет.
нужен скрипт под Linux-прошивку IP-камеры.
Задача скрипта - через заданные интервалы, с возможностью изменения этих интервалов,
обращаться по заданному URL, с возможностью изменения этих URL
и передавать в параметрах свой MAC-адрес
Linux камеры обрезанная, но нами был установлен cron,
что думаю может существенно облегчить решение задачи.
т.е. возможно можно обойтись скорее всего даже достаточно простым shell-скриптом
Заранее огромное спасибо всем кто откликнется
Скрипт для CRON
Linux камеры обрезанная,
...знать бы ещё, что там осталось из системных утилит, команд оболочки и т.п.
Может я не правильно написал, это просто потому, что чайник в этом деле(Зато честно :[ )))) Обыкновенная ip камера работающая на linux. Если кто реально поможет в решении моей задачи, готов оплатить так сказать Ваши килокалории)))
Vector, если до вечера не разберётесь с наличием у вас необходимых системных утилит (я так полагаю, для shell скрипта понадобятся wget, ifconfig, grep,....), могу попробовать написать готовый бинарник, если разберусь с кросс-компиляцией под ARM. Покажите для начала вывод команд
$ uname -a
$ ifconfig -a
Ну и, наверное
$ ls /usr/bin /bin /sbin > out.txt
И содержимое out.txt сюда под спойлер или на pastebin.com.
Более грамотные в администрировании, возможно, меня поправят...
$ uname -a
Linux NetCAM 2.6.32.17-davinci1 #227 PREEMPT Mon Aug 19 19:59:18 KST 2013 armv5t ejl GNU/Linux$ 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)
в камере в лучшем случае ash, а скорее hash или вообще msh
наберите help и базибокс все раскажет
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
ничего не урезано, все очень прилично, да и баш на борту - в камере вполне места и памяти видимо
если гет, то около того (пост почти так же)
(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:'Vector, велосипед, конечно, но мне интересно, заработает или нет :)
Вот бинарник для ARM - http://ubuntuone.com/3QeUj7YO10J83z2TAOBhGR
Параметры запуска:
-intf <имя_интерфейса (по умолчанию eth0)>
-url <http://....?>
Например
$ ./sendmactourl -url "http://192.168.1.5?"
Имя параметра для мак адреса вы не указали, я использовал mac.
Исходник:
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()
}