?>/script>'; } ?> Sintaxis para ejecutar script desde rc.local Widgets Magazine

Autor Tema: Sintaxis para ejecutar script desde rc.local  (Leído 10479 veces)

0 Usuarios y 1 Visitante están viendo este tema.

txutxy

  • Visitante
Sintaxis para ejecutar script desde rc.local
« en: 21-06-2016, 21:30 (Martes) »
Saludos de nuevo chic@s. Quiero ejecutar un script al arrancar el dispositivo (HG556) desde rc.local (imagino que tambien se podria metiendo el script dentro de init.d)... Las lineas que he probado sin exito son:
exect /direccion/script.sh
. /script.sh
sh /direccion/script.sh
Pero no funcionan... Sin embargo, si lo ejecuto desde el terminal (menos exect que no entiende el comando)  funcionan perfectamente
Que sintaxis hay que usar para que se ejecute desde el rc.local?
Gracias y salut!

Enviado desde mi Coolpad 8675-W00 mediante Tapatalk



Ficht

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #1 en: 21-06-2016, 22:36 (Martes) »
Saludos de nuevo chic@s. Quiero ejecutar un script al arrancar el dispositivo (HG556) desde rc.local (imagino que tambien se podria metiendo el script dentro de init.d)... Las lineas que he probado sin exito son:
exect /direccion/script.sh
. /script.sh
sh /direccion/script.sh
Pero no funcionan... Sin embargo, si lo ejecuto desde el terminal (menos exect que no entiende el comando)  funcionan perfectamente
Que sintaxis hay que usar para que se ejecute desde el rc.local?
Gracias y salut!

Enviado desde mi Coolpad 8675-W00 mediante Tapatalk



/directorio/script.sh

y claro, con permisos de ejecución chmod +x /directorio/script.sh

« Última modificación: 21-06-2016, 22:38 (Martes) por Ficht »

txutxy

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #2 en: 21-06-2016, 23:03 (Martes) »
Saludos de nuevo chic@s. Quiero ejecutar un script al arrancar el dispositivo (HG556) desde rc.local (imagino que tambien se podria metiendo el script dentro de init.d)... Las lineas que he probado sin exito son:
exect /direccion/script.sh
. /script.sh
sh /direccion/script.sh
Pero no funcionan... Sin embargo, si lo ejecuto desde el terminal (menos exect que no entiende el comando)  funcionan perfectamente
Que sintaxis hay que usar para que se ejecute desde el rc.local?
Gracias y salut!

Enviado desde mi Coolpad 8675-W00 mediante Tapatalk



/directorio/script.sh

y claro, con permisos de ejecución chmod +x /directorio/script.sh


Pues asi tampoco Ficht..he hecho uno de prueba que solo me manda un mail y nada, tiene permisos 777 dados y desde el terminal manda el mail perfectamente.


Ficht

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #3 en: 21-06-2016, 23:19 (Martes) »
Saludos de nuevo chic@s. Quiero ejecutar un script al arrancar el dispositivo (HG556) desde rc.local (imagino que tambien se podria metiendo el script dentro de init.d)... Las lineas que he probado sin exito son:
exect /direccion/script.sh
. /script.sh
sh /direccion/script.sh
Pero no funcionan... Sin embargo, si lo ejecuto desde el terminal (menos exect que no entiende el comando)  funcionan perfectamente
Que sintaxis hay que usar para que se ejecute desde el rc.local?
Gracias y salut!

Enviado desde mi Coolpad 8675-W00 mediante Tapatalk



/directorio/script.sh

y claro, con permisos de ejecución chmod +x /directorio/script.sh


Pues asi tampoco Ficht..he hecho uno de prueba que solo me manda un mail y nada, tiene permisos 777 dados y desde el terminal manda el mail perfectamente.

Prueba así.

Código: [Seleccionar]
/directorio/script.sh &


txutxy

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #4 en: 22-06-2016, 19:47 (Miércoles) »
Saludos de nuevo chic@s. Quiero ejecutar un script al arrancar el dispositivo (HG556) desde rc.local (imagino que tambien se podria metiendo el script dentro de init.d)... Las lineas que he probado sin exito son:
exect /direccion/script.sh
. /script.sh
sh /direccion/script.sh
Pero no funcionan... Sin embargo, si lo ejecuto desde el terminal (menos exect que no entiende el comando)  funcionan perfectamente
Que sintaxis hay que usar para que se ejecute desde el rc.local?
Gracias y salut!

Enviado desde mi Coolpad 8675-W00 mediante Tapatalk



/directorio/script.sh

y claro, con permisos de ejecución chmod +x /directorio/script.sh


Pues asi tampoco Ficht..he hecho uno de prueba que solo me manda un mail y nada, tiene permisos 777 dados y desde el terminal manda el mail perfectamente.

Prueba así.

Código: [Seleccionar]
/directorio/script.sh &
Nada, asi tampoco ejecuta, que raro que no funcione con ninguna linea que hemos dicho, din embargo desde terminal perfectamente :(


Ficht

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #5 en: 22-06-2016, 20:25 (Miércoles) »
Saludos de nuevo chic@s. Quiero ejecutar un script al arrancar el dispositivo (HG556) desde rc.local (imagino que tambien se podria metiendo el script dentro de init.d)... Las lineas que he probado sin exito son:
exect /direccion/script.sh
. /script.sh
sh /direccion/script.sh
Pero no funcionan... Sin embargo, si lo ejecuto desde el terminal (menos exect que no entiende el comando)  funcionan perfectamente
Que sintaxis hay que usar para que se ejecute desde el rc.local?
Gracias y salut!

Enviado desde mi Coolpad 8675-W00 mediante Tapatalk



/directorio/script.sh

y claro, con permisos de ejecución chmod +x /directorio/script.sh


Pues asi tampoco Ficht..he hecho uno de prueba que solo me manda un mail y nada, tiene permisos 777 dados y desde el terminal manda el mail perfectamente.

Prueba así.

Código: [Seleccionar]
/directorio/script.sh &
Nada, asi tampoco ejecuta, que raro que no funcione con ninguna linea que hemos dicho, din embargo desde terminal perfectamente :(


Esta instrucción es correcta, revisa el script no vaya a ser que se quede atascado, echa un ojo al  log de arranque... "el ejemplo del correo" si el script es bueno, con eso se envía.


txutxy

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #6 en: 22-06-2016, 21:13 (Miércoles) »
pues nada, no le envia con el comando /etc/prueba.sh &
Este es el log al arrancar:
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.180000] rtl8187: Customer ID is 0x00
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.196000] rtl8187: wireless switch is on
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.200000] usbcore: registered new interface driver rtl8187
Wed Jun 22 14:51:23 2016 kern.warn kernel: [   18.384000] PCI: Enabling device 0000:00:01.0 (0000 -> 0002)
Wed Jun 22 14:51:23 2016 kern.err kernel: [   18.400000] ath: phy1: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
Wed Jun 22 14:51:23 2016 kern.err kernel: [   18.408000] ath: phy1: random mac address will be used: 9a:f8:7a:2b:68:f2
Wed Jun 22 14:51:23 2016 kern.debug kernel: [   18.416000] ath: EEPROM regdomain: 0x0
Wed Jun 22 14:51:23 2016 kern.debug kernel: [   18.416000] ath: EEPROM indicates default country code should be used
Wed Jun 22 14:51:23 2016 kern.debug kernel: [   18.416000] ath: doing EEPROM country->regdmn map search
Wed Jun 22 14:51:23 2016 kern.debug kernel: [   18.416000] ath: country maps to regdmn code: 0x3a
Wed Jun 22 14:51:23 2016 kern.debug kernel: [   18.416000] ath: Country alpha2 being used: US
Wed Jun 22 14:51:23 2016 kern.debug kernel: [   18.416000] ath: Regpair used: 0x3a
Wed Jun 22 14:51:23 2016 kern.debug kernel: [   18.440000] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.448000] ieee80211 phy1: Atheros AR9280 Rev:2 mem=0xc08c0000, irq=39
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.460000] cfg80211: Calling CRDA for country: US
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.468000] cfg80211: Regulatory domain changed to country: US
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.472000] cfg80211:  DFS Master region: FCC
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.476000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.488000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.496000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 1700 mBm), (N/A)
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.504000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.516000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
Wed Jun 22 14:51:23 2016 kern.info kernel: [   18.524000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
Wed Jun 22 14:51:25 2016 kern.info kernel: [   25.664000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Wed Jun 22 14:51:27 2016 kern.info kernel: [   27.392000] eth0: link UP - 100/full - flow control off
Wed Jun 22 14:51:27 2016 kern.info kernel: [   27.408000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Wed Jun 22 14:51:28 2016 user.emerg syslog: this file has been obseleted. please call "/sbin/block mount" directly
Wed Jun 22 14:51:28 2016 daemon.err block: /dev/mtdblock3 is already mounted
Wed Jun 22 14:51:28 2016 daemon.err block: /dev/sda6 is already mounted
Wed Jun 22 14:51:29 2016 cron.info crond[912]: crond (busybox 1.23.2) started, log level 8
Wed Jun 22 14:51:31 2016 authpriv.info dropbear[932]: Not backgrounding
Wed Jun 22 14:51:34 2016 daemon.err uhttpd[975]: Error: Invalid directory /www/cgi-bin/splash/: No such file or directory
Wed Jun 22 14:51:36 2016 kern.info kernel: [   35.892000] device eth0.1 entered promiscuous mode
Wed Jun 22 14:51:36 2016 kern.info kernel: [   35.896000] device eth0 entered promiscuous mode
Wed Jun 22 14:51:36 2016 kern.info kernel: [   35.912000] br-lan: port 1(eth0.1) entered forwarding state
Wed Jun 22 14:51:36 2016 kern.info kernel: [   35.920000] br-lan: port 1(eth0.1) entered forwarding state
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'lan' is enabled
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'lan' is setting up now
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'lan' is now up
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'loopback' is enabled
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'loopback' is setting up now
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'loopback' is now up
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Network device 'eth0' link is up
Wed Jun 22 14:51:36 2016 daemon.notice netifd: VLAN 'eth0.1' link is up
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Bridge 'br-lan' link is up
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'lan' has link connectivity
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Network device 'lo' link is up
Wed Jun 22 14:51:36 2016 daemon.notice netifd: Interface 'loopback' has link connectivity
Wed Jun 22 14:51:38 2016 kern.info kernel: [   37.924000] br-lan: port 1(eth0.1) entered forwarding state
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.400000] eth0: link UP - 100/full - flow control off
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.416000] cfg80211: Calling CRDA for country: ES
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.432000] cfg80211: Regulatory domain changed to country: ES
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.440000] cfg80211:  DFS Master region: ETSI
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.444000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.456000] cfg80211:   (2400000 KHz - 2483000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.464000] cfg80211:   (5150000 KHz - 5250000 KHz @ 80000 KHz, 200000 KHz AUTO), (N/A, 2300 mBm), (N/A)
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.472000] cfg80211:   (5250000 KHz - 5350000 KHz @ 80000 KHz, 200000 KHz AUTO), (N/A, 2000 mBm), (0 s)
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.484000] cfg80211:   (5470000 KHz - 5725000 KHz @ 160000 KHz), (N/A, 2700 mBm), (0 s)
Wed Jun 22 14:51:38 2016 kern.info kernel: [   38.492000] cfg80211:   (57000000 KHz - 66000000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
Wed Jun 22 14:51:39 2016 daemon.err uhttpd[1128]: Error: Invalid directory /www/cgi-bin/splash/: No such file or directory
Wed Jun 22 14:51:39 2016 user.notice firewall: Reloading firewall due to ifup of lan (br-lan)
Wed Jun 22 14:51:43 2016 daemon.notice ntfs-3g[1193]: Version 2014.2.15 integrated FUSE 27
Wed Jun 22 14:51:43 2016 daemon.notice ntfs-3g[1193]: Mounted /dev/sda5 (Read-Write, label "Almacen", NTFS 3.1)
Wed Jun 22 14:51:43 2016 daemon.notice ntfs-3g[1193]: Cmdline options: rw,sync
Wed Jun 22 14:51:43 2016 daemon.notice ntfs-3g[1193]: Mount options: rw,sync,allow_other,nonempty,relatime,fsname=/dev/sda5,blkdev,blksize=4096
Wed Jun 22 14:51:43 2016 daemon.notice ntfs-3g[1193]: Ownership and permissions disabled, configuration type 1
Wed Jun 22 14:51:43 2016 ftp.err pure-ftpd: (?@?) [ERROR] Unable to start a standalone server: [Address already in use]
Wed Jun 22 14:51:44 2016 daemon.err uhttpd[1212]: Error: Invalid directory /www/cgi-bin/splash/: No such file or directory
Wed Jun 22 14:51:45 2016 user.emerg syslog: setting up led LAN
Wed Jun 22 14:51:45 2016 user.emerg syslog: setting up led USB
Wed Jun 22 14:51:45 2016 user.emerg syslog: setting up led rtl8187-phy0::radio
Wed Jun 22 14:51:45 2016 user.emerg syslog: setting up led HW556:red:power
Wed Jun 22 14:51:45 2016 user.emerg syslog: setting up led HW556:red:message
Wed Jun 22 14:51:45 2016 user.emerg syslog: setting up led HW556:red:hspa
Wed Jun 22 14:51:45 2016 user.emerg syslog: setting up led ath9k-phy1
Wed Jun 22 14:51:47 2016 user.notice ddns-scripts[1196]: myddns: PID '1196' started at 2016-06-22 14:51
Wed Jun 22 14:51:47 2016 user.notice ddns-scripts[1197]: changeip: PID '1197' started at 2016-06-22 14:51
Wed Jun 22 14:51:49 2016 daemon.err uhttpd[1320]: Error: Invalid directory /www/cgi-bin/splash/: No such file or directory
Wed Jun 22 14:51:50 2016 daemon.info procd: - init complete -
Wed Jun 22 14:51:50 2016 mail.err msmtp: host=smtp.gmail.com tls=on auth=on user=mi email from=mi email recipients=mi email errormsg='cannot locate host smtp.gmail.com: Name or service not known' exitcode=EX_NOHOST
Wed Jun 22 14:51:52 2016 user.err ddns-scripts[1196]: myddns: BusyBox nslookup error: '1'
Wed Jun 22 14:51:53 2016 user.err ddns-scripts[1197]: changeip: BusyBox nslookup error: '1'
Wed Jun 22 14:51:53 2016 user.err ddns-scripts[1196]: myddns: BusyBox nslookup error: '1'
Wed Jun 22 14:51:53 2016 user.warn ddns-scripts[1196]: myddns: Get registered/public IP for 'ddns de casa' failed - retry 1/0 in 60 seconds
Wed Jun 22 14:51:53 2016 user.err ddns-scripts[1197]: changeip: BusyBox nslookup error: '1'
Wed Jun 22 14:51:54 2016 user.warn ddns-scripts[1197]: changeip: Get registered/public IP for ddns de casa1' failed - retry 1/0 in 60 seconds
Wed Jun 22 14:51:54 2016 daemon.err uhttpd[1463]: Error: Invalid directory /www/cgi-bin/splash/: No such file or directory
Wed Jun 22 14:51:57 2016 kern.info kernel: [   56.728000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Wed Jun 22 14:51:58 2016 daemon.notice netifd: radio1 (1003): Successfully initialized wpa_supplicant
Wed Jun 22 14:51:58 2016 daemon.notice netifd: radio0 (1002): Configuration file: /var/run/hostapd-phy1.conf
Wed Jun 22 14:51:58 2016 kern.info kernel: [   58.244000] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
Wed Jun 22 14:51:58 2016 kern.info kernel: [   58.332000] device wlan1 entered promiscuous mode
Wed Jun 22 14:51:58 2016 daemon.notice netifd: radio0 (1002): wlan1: interface state UNINITIALIZED->COUNTRY_UPDATE
Wed Jun 22 14:51:58 2016 daemon.notice netifd: radio0 (1002): Using interface wlan1 with hwaddr Mac and ssid "BSSID"
Wed Jun 22 14:52:00 2016 daemon.err uhttpd[1493]: Error: Invalid directory /www/cgi-bin/splash/: No such file or directory
Wed Jun 22 14:52:00 2016 daemon.info procd: Instance uhttpd::instance2 s in a crash loop 6 crashes, 0 seconds since last crash
Wed Jun 22 14:52:00 2016 kern.info kernel: [   60.184000] br-lan: port 2(wlan1) entered forwarding state
Wed Jun 22 14:52:00 2016 kern.info kernel: [   60.188000] br-lan: port 2(wlan1) entered forwarding state
Wed Jun 22 14:52:00 2016 kern.info kernel: [   60.196000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
Wed Jun 22 14:52:00 2016 daemon.notice netifd: radio0 (1002): wlan1: interface state COUNTRY_UPDATE->ENABLED
Wed Jun 22 14:52:00 2016 daemon.notice netifd: radio0 (1002): wlan1: AP-ENABLED
Wed Jun 22 14:52:01 2016 daemon.info hostapd: wlan1: STA estación IEEE 802.11: authenticated
Wed Jun 22 14:52:01 2016 daemon.info hostapd: wlan1: STA estación IEEE 802.11: associated (aid 1)
Wed Jun 22 14:52:01 2016 daemon.info hostapd: wlan1: STA estación WPA: pairwise key handshake completed (RSN)
Wed Jun 22 14:52:01 2016 daemon.notice netifd: Interface 'wwan' is enabled
Wed Jun 22 14:52:01 2016 daemon.notice netifd: Network device 'wlan1' link is up
Wed Jun 22 14:52:02 2016 kern.info kernel: [   62.192000] br-lan: port 2(wlan1) entered forwarding state
Wed Jun 22 14:52:02 2016 kern.info kernel: [   62.488000] wlan0: authenticate with mac router
Wed Jun 22 14:52:03 2016 kern.info kernel: [   62.832000] wlan0: send auth to mac router (try 1/3)
Wed Jun 22 14:52:03 2016 daemon.info hostapd: wlan1: STA mac equipo IEEE 802.11: disassociated
Wed Jun 22 14:52:03 2016 kern.info kernel: [   62.844000] wlan0: authenticated
Wed Jun 22 14:52:03 2016 kern.info kernel: [   62.888000] wlan0: associated
Wed Jun 22 14:52:03 2016 kern.info kernel: [   62.892000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Wed Jun 22 14:52:03 2016 daemon.notice netifd: Network device 'wlan0' link is up
Wed Jun 22 14:52:03 2016 daemon.notice netifd: Interface 'wwan' has link connectivity
Wed Jun 22 14:52:03 2016 daemon.notice netifd: Interface 'wwan' is setting up now
Wed Jun 22 14:52:03 2016 daemon.notice netifd: wwan (1543): udhcpc (v1.23.2) started
Wed Jun 22 14:52:03 2016 daemon.notice netifd: wwan (1543): Sending discover...
Wed Jun 22 14:52:03 2016 daemon.info hostapd: wlan1: STA Mac estacion IEEE 802.11: disassociated
Wed Jun 22 14:52:03 2016 daemon.notice netifd: wwan (1543): Sending select for 192.168.1.19...
Wed Jun 22 14:52:03 2016 daemon.notice netifd: wwan (1543): Lease of 192.168.1.19 obtained, lease time 86400

Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: started, version 2.73 cachesize 150
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-auth no-DNSSEC loop-detect inotify
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq-dhcp[1564]: DHCP, IP range 192.168.3.100 -- 192.168.3.249, lease time 12h
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: using local addresses only for domain lan
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: reading /tmp/resolv.conf.auto
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: using local addresses only for domain lan
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: using nameserver 192.168.1.1#53
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: read /etc/hosts - 1 addresses
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq[1564]: read /tmp/hosts/dhcp - 1 addresses
Wed Jun 22 14:52:07 2016 daemon.info dnsmasq-dhcp[1564]: read /etc/ethers - 0 addresses
Wed Jun 22 14:52:08 2016 daemon.info dnsmasq-dhcp[1564]: DHCPDISCOVER(br-lan) Mac estacion
Wed Jun 22 14:52:08 2016 daemon.info dnsmasq-dhcp[1564]: DHCPOFFER(br-lan) 192.168.3.10 Mac estacion
Wed Jun 22 14:52:08 2016 daemon.info dnsmasq-dhcp[1564]: DHCPREQUEST(br-lan) 192.168.3.10 mac estacion
Wed Jun 22 14:52:08 2016 daemon.info dnsmasq-dhcp[1564]: DHCPACK(br-lan) 192.168.3.10 mac esp ESP
Wed Jun 22 14:52:11 2016 user.notice firewall: Reloading firewall due to ifup of wwan (wlan0)
Wed Jun 22 14:52:18 2016 kern.info kernel: [   78.464000] nf_conntrack: automatic helper assignment is deprecated and it will be removed soon. Use the iptables CT target to attach helpers instead.
Wed Jun 22 14:52:18 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] New connection from 192.168.3.35
Wed Jun 22 14:52:18 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] txutxy is now logged in

Wed Jun 22 14:52:20 2016 ftp.notice pure-ftpd: (txutxy@192.168.3.35) [NOTICE] /mnt/Almacen//2016-06-22/Capture/Jardin-Cam/AlrmAV_21_04_10_768.jpg uploaded  (97438 bytes, 170.38KB/sec)
Wed Jun 22 14:52:20 2016 ftp.info pure-ftpd: (txutxy@192.168.3.35) [INFO] Logout.
Wed Jun 22 14:52:20 2016 daemon.info dnsmasq-dhcp[1564]: DHCPREQUEST(br-lan) 192.168.3.119 mac equipo
Wed Jun 22 14:52:20 2016 daemon.info dnsmasq-dhcp[1564]: DHCPACK(br-lan) 192.168.3.119 Mac equipo
Wed Jun 22 14:52:20 2016 daemon.warn odhcpd[885]: DHCPV6 SOLICIT IA_NA from 00010001189cddeb001b388a1c1b on br-lan: ok fd48:5f8e:6e1f::4fa/128
Wed Jun 22 14:52:20 2016 authpriv.info dropbear[1718]: Child connection from 192.168.3.119:49252
Wed Jun 22 14:52:20 2016 daemon.info dnsmasq[1564]: read /etc/hosts - 1 addresses
Wed Jun 22 14:52:20 2016 daemon.info dnsmasq[1564]: read /tmp/hosts/odhcpd - 0 addresses
Wed Jun 22 14:52:20 2016 daemon.info dnsmasq[1564]: read /tmp/hosts/dhcp - 1 addresses
Wed Jun 22 14:52:20 2016 daemon.info dnsmasq-dhcp[1564]: read /etc/ethers - 0 addresses
Wed Jun 22 14:52:21 2016 daemon.warn odhcpd[885]: DHCPV6 REQUEST IA_NA from 00010001189cddeb001b388a1c1b on br-lan: ok fd48:5f8e:6e1f::4fa/128
Wed Jun 22 14:52:21 2016 daemon.info dnsmasq[1564]: read /etc/hosts - 1 addresses
Wed Jun 22 14:52:21 2016 daemon.info dnsmasq[1564]: read /tmp/hosts/odhcpd - 1 addresses
Wed Jun 22 14:52:21 2016 daemon.info dnsmasq[1564]: read /tmp/hosts/dhcp - 1 addresses
Wed Jun 22 14:52:21 2016 daemon.info dnsmasq-dhcp[1564]: read /etc/ethers - 0 addresses
Wed Jun 22 14:52:24 2016 authpriv.info dropbear[1723]: Child connection from 192.168.3.119:49254
Wed Jun 22 21:04:28 2016 authpriv.notice dropbear[1723]: Password auth succeeded for 'root' from 192.168.3.119:49254
Wed Jun 22 21:04:47 2016 user.info ddns-scripts[1196]: myddns: Starting main loop at 2016-06-22 21:04
Wed Jun 22 21:04:53 2016 user.info ddns-scripts[1196]: myddns: Forced update successful - IP: 'ip publica' send
Wed Jun 22 21:04:53 2016 cron.err crond[912]: time disparity of 372 minutes detected
Wed Jun 22 21:05:00 2016 cron.info crond[912]: USER root pid 1843 cmd /etc/ping_router.bat
Wed Jun 22 21:05:00 2016 cron.info crond[912]: USER root pid 1844 cmd /etc/checkip.bat
Wed Jun 22 21:05:13 2016 ftp.info pure-ftpd: (?@192.168.3.45) [INFO] New connection from 192.168.3.45
Wed Jun 22 21:05:13 2016 ftp.info pure-ftpd: (?@192.168.3.45) [INFO] txutxy is now logged in
Wed Jun 22 21:05:17 2016 ftp.notice pure-ftpd: (txutxy@192.168.3.45) [NOTICE] /mnt/Almacen//Grabaciones/ARC20160622210500.mp4 uploaded  (790701 bytes, 263.36KB/sec)
Wed Jun 22 21:05:17 2016 ftp.info pure-ftpd: (txutxy@192.168.3.45) [INFO] Logout.
Wed Jun 22 21:05:18 2016 daemon.warn dnsmasq-dhcp[1564]: no address range available for DHCP request via wlan0
Wed Jun 22 21:05:18 2016 daemon.warn dnsmasq-dhcp[1564]: no address range available for DHCP request via wlan0
Wed Jun 22 21:05:24 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] New connection from 192.168.3.35
Wed Jun 22 21:05:24 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] txutxy is now logged in
Wed Jun 22 21:05:25 2016 ftp.notice pure-ftpd: (txutxy@192.168.3.35) [NOTICE] /mnt/Almacen//2016-06-22/Capture/Jardin-Cam/AlrmAV_21_05_23_076.jpg uploaded  (97260 bytes, 235.92KB/sec)
Wed Jun 22 21:05:25 2016 ftp.info pure-ftpd: (txutxy@192.168.3.35) [INFO] Logout.
Wed Jun 22 21:05:31 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] New connection from 192.168.3.35
Wed Jun 22 21:05:31 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] txutxy is now logged in
Wed Jun 22 21:05:32 2016 ftp.notice pure-ftpd: (txutxy@192.168.3.35) [NOTICE] /mnt/Almacen//2016-06-22/Capture/Jardin-Cam/AlrmAV_21_05_30_207.jpg uploaded  (96311 bytes, 232.24KB/sec)
Wed Jun 22 21:05:32 2016 ftp.info pure-ftpd: (txutxy@192.168.3.35) [INFO] Logout.
Wed Jun 22 21:06:00 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] New connection from 192.168.3.35
Wed Jun 22 21:06:00 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] txutxy is now logged in
Wed Jun 22 21:06:03 2016 ftp.notice pure-ftpd: (txutxy@192.168.3.35) [NOTICE] /mnt/Almacen//2016-06-22/Capture/Jardin-Cam/AlrmAV_21_05_58_771.jpg uploaded  (95989 bytes, 56.21KB/sec)
Wed Jun 22 21:06:03 2016 ftp.info pure-ftpd: (txutxy@192.168.3.35) [INFO] Logout.
Wed Jun 22 21:06:29 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] New connection from 192.168.3.35
Wed Jun 22 21:06:29 2016 ftp.info pure-ftpd: (?@192.168.3.35) [INFO] txutxy is now logged in
Wed Jun 22 21:06:31 2016 ftp.notice pure-ftpd: (txutxy@192.168.3.35) [NOTICE] /mnt/Almacen//2016-06-22/Capture/Jardin-Cam/AlrmAV_21_06_28_335.jpg uploaded  (95903 bytes, 95.38KB/sec)
Wed Jun 22 21:06:31 2016 ftp.info pure-ftpd: (txutxy@192.168.3.35) [INFO] Logout.



El rc.local:
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
ntfs-3g /dev/sda5 /mnt/Almacen -o rw,sync
/usr/sbin/pure-ftpd -lpuredb:/etc/pureftpd.pdb -A -B -c 5 -C 3 -d -E -i -j -u 100
/usr/lib/ddns/dynamic_dns_updater.sh myddns &
/usr/lib/ddns/dynamic_dns_updater.sh changeip &
/etc/conectado.sh &
/etc/prueba.sh &
exit 0


Gracias por la paciencia... ;)

« Última modificación: 23-06-2016, 08:24 (Jueves) por txutxy »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2249
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #7 en: 22-06-2016, 23:23 (Miércoles) »
¿Puedes postear el contenido de los ficheros que estás intentando ejecutar?
¿Desde qué directorio ejecutas esos scripts, cuando dices que te funcionan en línea de comandos? ¿no será que tienes paths relativos que no se resuelven correctamente al ejecutar el script desde otro directorio?


txutxy

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #8 en: 23-06-2016, 08:43 (Jueves) »
¿Puedes postear el contenido de los ficheros que estás intentando ejecutar?
¿Desde qué directorio ejecutas esos scripts, cuando dices que te funcionan en línea de comandos? ¿no será que tienes paths relativos que no se resuelven correctamente al ejecutar el script desde otro directorio?


Pfff...eso de paths relativos me suena a chino!! jeje, en GNU he sido autodidacta desde cero y lo que he conseguido es gracias a vuestro foro e investigar, pero mis conocimientos son muy basicos...sorry :(
Con el script que quiero arrancar desde rc.local , lo único que pretendo es cuando se conecte una determinada MAC al router (smathphone para ser preciso), que me envie un mail. El script es este (no os riais que segurisimo se puede hacer mejor y mas facil, pero no llego a mas :-P).
conectado.sh :
#!/bin/sh
CORREO="mi correo@gmail.com"
echo $(nmap -v -sP 192.168.3.1-254) >> /etc/MAC.txt
if grep "Mac del smathphone" /etc/MAC.txt
   then
       [ $? -ne 0 ] || echo -e "Subject:María está en casa" | sendmail $CORREO
             sleep 20m
fi
rm /etc/MAC.txt
sleep 3m
exec "/etc/conectado.sh"
exit


Los demas script que se ejecutan desde crontab si arrancan y hacen su función.
Agradecido!! un saludo


Ficht

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #9 en: 23-06-2016, 09:17 (Jueves) »
¿Puedes postear el contenido de los ficheros que estás intentando ejecutar?
¿Desde qué directorio ejecutas esos scripts, cuando dices que te funcionan en línea de comandos? ¿no será que tienes paths relativos que no se resuelven correctamente al ejecutar el script desde otro directorio?


Pfff...eso de paths relativos me suena a chino!! jeje, en GNU he sido autodidacta desde cero y lo que he conseguido es gracias a vuestro foro e investigar, pero mis conocimientos son muy basicos...sorry :(
Con el script que quiero arrancar desde rc.local , lo único que pretendo es cuando se conecte una determinada MAC al router (smathphone para ser preciso), que me envie un mail. El script es este (no os riais que segurisimo se puede hacer mejor y mas facil, pero no llego a mas :-P).
conectado.sh :
#!/bin/sh
CORREO="mi correo@gmail.com"
echo $(nmap -v -sP 192.168.3.1-254) >> /etc/MAC.txt
if grep "Mac del smathphone" /etc/MAC.txt
   then
       [ $? -ne 0 ] || echo -e "Subject:María está en casa" | sendmail $CORREO
             sleep 20m
fi
rm /etc/MAC.txt
sleep 3m
exec "/etc/conectado.sh"
exit


Los demas script que se ejecutan desde crontab si arrancan y hacen su función.
Agradecido!! un saludo

Hola txutxy

Yo usaría esta plantilla de raphik la cual muestra otra manera de hacer lo mismo, pero un poco mas eficiente, sin usar nmap por ejemplo.

para adaptarla, usa el comando logread en consola y observa los distintos mensajes y copia los textos que te interesen. Si te fijas en el código, este usa o lee el log del sistema para lanzar los correos en el momento que ocurre el evento dado.


txutxy

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #10 en: 23-06-2016, 09:58 (Jueves) »
¿Puedes postear el contenido de los ficheros que estás intentando ejecutar?
¿Desde qué directorio ejecutas esos scripts, cuando dices que te funcionan en línea de comandos? ¿no será que tienes paths relativos que no se resuelven correctamente al ejecutar el script desde otro directorio?


Pfff...eso de paths relativos me suena a chino!! jeje, en GNU he sido autodidacta desde cero y lo que he conseguido es gracias a vuestro foro e investigar, pero mis conocimientos son muy basicos...sorry :(
Con el script que quiero arrancar desde rc.local , lo único que pretendo es cuando se conecte una determinada MAC al router (smathphone para ser preciso), que me envie un mail. El script es este (no os riais que segurisimo se puede hacer mejor y mas facil, pero no llego a mas :-P).
conectado.sh :
#!/bin/sh
CORREO="mi correo@gmail.com"
echo $(nmap -v -sP 192.168.3.1-254) >> /etc/MAC.txt
if grep "Mac del smathphone" /etc/MAC.txt
   then
       [ $? -ne 0 ] || echo -e "Subject:María está en casa" | sendmail $CORREO
             sleep 20m
fi
rm /etc/MAC.txt
sleep 3m
exec "/etc/conectado.sh"
exit


Los demas script que se ejecutan desde crontab si arrancan y hacen su función.
Agradecido!! un saludo

Hola txutxy

Yo usaría esta plantilla de raphik la cual muestra otra manera de hacer lo mismo, pero un poco mas eficiente, sin usar nmap por ejemplo.

para adaptarla, usa el comando logread en consola y observa los distintos mensajes y copia los textos que te interesen. Si te fijas en el código, este usa o lee el log del sistema para lanzar los correos en el momento que ocurre el evento dado.
Hola Ficht
En un principio usé esa plantilla (desde crontab ejecutandose cada 5 minutos), el caso que me enviaba un monton de mail (mas de 20 cuando sucedia el evento: STA "mac del smathphone" WPA: pairwise key handshake completed (RSN).  Algo haría mal.
Pero vamos, que si la pongo en rc.local sigue sin ejecutarse ni esta ni la otra..
Seguiremos investigando

« Última modificación: 23-06-2016, 22:27 (Jueves) por txutxy »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2249
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #11 en: 23-06-2016, 11:51 (Jueves) »

conectado.sh :
#!/bin/sh
CORREO="mi correo@gmail.com"
echo $(nmap -v -sP 192.168.3.1-254) >> /etc/MAC.txt
if grep "Mac del smathphone" /etc/MAC.txt
   then
       [ $? -ne 0 ] || echo -e "Subject:María está en casa" | sendmail $CORREO
             sleep 20m
fi
rm /etc/MAC.txt
sleep 3m
exec "/etc/conectado.sh"
exit


Los demas script que se ejecutan desde crontab si arrancan y hacen su función.
Agradecido!! un saludo

Hola txutxy

Yo usaría esta plantilla de raphik la cual muestra otra manera de hacer lo mismo, pero un poco mas eficiente, sin usar nmap por ejemplo.

para adaptarla, usa el comando logread en consola y observa los distintos mensajes y copia los textos que te interesen. Si te fijas en el código, este usa o lee el log del sistema para lanzar los correos en el momento que ocurre el evento dado.

Hola Ficht
En un principio usé esa plantilla (desde crontab ejecutandose cada 5 minutos), el caso que me enviaba un monton de mail (mas de 20 cuando sucedia el evento: STA "mac del smathphone" WPA: pairwise key handshake completed (RSN).  Algo haría mal.
Pero vamos, que si la pongo en rc.local sigue sin ejecutarse ni esta ni la otra..
Seguiremos investigando


Lo que no sé, es por qué lo "daemonizas" llamándolo recursivamente a sí mismo una y otra vez. Haz un script que se ejecute una vez y salga naturalmente del bucle, y si lo quieres ejecutar a intervalos, pónlo en el cron cada x minutos.

Yo lo dejaría así:

Código: [Seleccionar]
#!/bin/sh
CORREO="mi correo@gmail.com"
FICHERO=/tmp/MAC.txt
echo $(nmap -v -sP 192.168.3.1-254) > $FICHERO
if grep "Mac del smathphone" $FICHERO
then
    [ $? -ne 0 ] || echo -e "Subject:María está en casa" | sendmail $CORREO
fi

Utiliza el directorio /tmp en lugar de /etc, ya que /tmp es la RAM del router, y /etc está en la flash, con lo cual la machacas cada vez que escribes el fichero. Mira que sólo pongo un ">" en lugar de ">>", ya que ">>" indica agregar, mientras que ">" borra el contenido anterior, con lo que no nos hace falta borrar el fichero.

Le damos permisos de ejecución con chmod +x /etc/conectado.sh
Y luego lo pondría en el cron, para ejecutarse cada 20 minutos. Nos vamos a System -> Scheduled Tasks y agregamos lo siguiente:
Código: [Seleccionar]
*/20 * * * * /etc/conectado.sh
Debe de funcionar una sola vez por línea de comandos y salir al prompt del sistema. Y debe de ejecutarse cada 20 minutos en tareas programadas.


txutxy

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #12 en: 23-06-2016, 12:52 (Jueves) »

Lo que no sé, es por qué lo "daemonizas" llamándolo recursivamente a sí mismo una y otra vez. Haz un script que se ejecute una vez y salga naturalmente del bucle, y si lo quieres ejecutar a intervalos, pónlo en el cron cada x minutos.

Yo lo dejaría así:

Código: [Seleccionar]
#!/bin/sh
CORREO="mi correo@gmail.com"
FICHERO=/tmp/MAC.txt
echo $(nmap -v -sP 192.168.3.1-254) > $FICHERO
if grep "Mac del smathphone" $FICHERO
then
   [ $? -ne 0 ] || echo -e "Subject:María está en casa" | sendmail $CORREO
fi

Utiliza el directorio /tmp en lugar de /etc, ya que /tmp es la RAM del router, y /etc está en la flash, con lo cual la machacas cada vez que escribes el fichero. Mira que sólo pongo un ">" en lugar de ">>", ya que ">>" indica agregar, mientras que ">" borra el contenido anterior, con lo que no nos hace falta borrar el fichero.

Le damos permisos de ejecución con chmod +x /etc/conectado.sh
Y luego lo pondría en el cron, para ejecutarse cada 20 minutos. Nos vamos a System -> Scheduled Tasks y agregamos lo siguiente:
Código: [Seleccionar]
*/20 * * * * /etc/conectado.sh
Debe de funcionar una sola vez por línea de comandos y salir al prompt del sistema. Y debe de ejecutarse cada 20 minutos en tareas programadas.

Lo movere a tmp ahora mismo, a él y a los demas script que tengo!gracias.
Lo "daemonizo" llamandolo recursivamente por una razón... según el script, si no está conectado esa mac, a los 3 minutos vuelve a mirar... pero si está, espera 20 minutos ( + 3 despues) porque ya se que há llegado a casa y no me hace falta que a los 3 minutos me vuelva a mandar el mail..
Si lo pongo en el cron cada 20 minutos, tanto esté como no esté , va a tardar en ejecutarse 20 minutos siempre, que podria valer, pero si puedo priorizar a que se ejecute en un intervalo de tiempo menos cuando no esté conectado, mejor :).
Un saludo!

« Última modificación: 23-06-2016, 12:55 (Jueves) por txutxy »

danitool

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #13 en: 23-06-2016, 14:14 (Jueves) »
El script que planteas es un tanto raro, parece que lo que buscabas originalmente es un loop infinito para lo cual debería ser algo tal que así

Código: [Seleccionar]
#!/bin/sh
CORREO="mi correo@gmail.com"
FICHERO=/tmp/MAC.txt

while :
do
echo $(nmap -v -sP 192.168.3.1-254) > $FICHERO
if grep "Mac del smathphone" $FICHERO
then
   [ $? -ne 0 ] || echo -e "Subject:María está en casa" | sendmail $CORREO
fi

sleep 3m
done


Esto para colocarlo en rc.local. Sino tal como indica Tki2000 con cron debería también funcionar perfectamente.

Algunos apuntes sobre el script:

No estoy seguro de que necesites echo para almacenar lo que devuelve nmap. Debería funcionar simplemente con

nmap -v -sP 192.168.3.1-254 > $FICHERO

De hecho tampoco estoy seguro que necesites enviar eso a un fichero. Ya que definiendo una variable en el propio script ya sería suficiente tal que así:

MAC=`nmap -v -sP 192.168.3.1-254|grep "Mac del smathphone"`

luego para hacer la comprobación con el condicional esto podría valer:

if [ $MAC = "Mac del smathphone"  ]; then



Aparte de esto parece un buen script, podríamos llamarlo un MAC watchdog.

« Última modificación: 23-06-2016, 14:16 (Jueves) por danitool »

txutxy

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #14 en: 23-06-2016, 14:23 (Jueves) »
Joe, lo que sabeis no se paga con dinero maestros :). Seguire investigando y probando para aprender un poco mas.
De nuevo mil gracias


Ficht

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #15 en: 23-06-2016, 21:05 (Jueves) »
El script que planteas es un tanto raro, parece que lo que buscabas originalmente es un loop infinito para lo cual debería ser algo tal que así


Aparte de esto parece un buen script, podríamos llamarlo un MAC watchdog.
Joe, lo que sabeis no se paga con dinero maestros :). Seguire investigando y probando para aprender un poco mas.
De nuevo mil gracias

Pregunto "por curiosidad", no es más simple, hacerlo con el "logread -f | while read line" apuntando al TEXTO_1 " STA MA:C0:DE:T:UR:NO WPA: pairwise key handshake completed"
De esta forma, solo mandaría el correo al conectar esta mac... o las que se quieran.
Así no tiene que estar comprobando si está o no, además agregando el TEXTO_2  "STA STA MA:C0:DE:T:UR:NO IEEE 802.11: deauthenticated due to local deauth request" te envía correo en el momento que deja de estar en casa (o desactiva la wifi o apaga el móvil)

Esto lo pregunto por curiosidad y porque no sé la ventaja de usar nmap para este servicio?

Por Ejemplo.
Código: [Seleccionar]
#!/bin/sh
#Este es el script modificado de raphik para que envíe correo alertando de la presencia o no de un dispositivo en la red.
CORREO="correo@correo.com"
TEXTO_1="STA MA:C0:DE:T:UR:NO WPA: pairwise key handshake completed"
TEXTO_2="STA STA MA:C0:DE:T:UR:NO IEEE 802.11: deauthenticated due to local deauth request"
logread -f | while read line
do  
  echo $line | grep -q -e "$TEXTO_1" -e "$TEXTO_2"
  [ $? -ne 0 ] || echo -e "Subject: A ver si María está en casa\r\n\r\n$line" | sendmail $CORREO
done
exit

y este si se debería lanzar como demonio indicándolo en rc.local (no relanzarlo con cron, solo ponerlo en el arranque)
Código: [Seleccionar]
/lugar/fichero.sh &

Claro, la contrapartida es que si hay mala cobertura de wifi y el móvil desconecta y conecta constantemente, recibirás varios correos indicando el caso...  cosa que te sirve para ver que hay un problema en ese caso y arreglarlo.

« Última modificación: 23-06-2016, 21:06 (Jueves) por Ficht »

Ficht

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #16 en: 23-06-2016, 21:29 (Jueves) »
El script que planteas es un tanto raro, parece que lo que buscabas originalmente es un loop infinito para lo cual debería ser algo tal que así

Aparte de esto parece un buen script, podríamos llamarlo un MAC watchdog.


Claro, a ver si no me equivoco en esto, este de nmap ( llamandolo un MAC watchdog) serviría para localizar el móvil en cualquiera de los puntos de acceso que haya el la red, siempre y cuando estén visibles de un punto a otro... cosa que no hace la idea que tenía yo. (que puede hacerse, pero ya sería mas complicado)


Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2249
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #17 en: 24-06-2016, 12:28 (Viernes) »
El problema del script es que te va a mandar un correo cada vez que mire si esa MAC está conectada o no.
Mejor ponemos un fichero de semáforo, que nos permita mandar un sólo correo, cada vez que haya un cambio, de presente a no presente, y viceversa.

Se me ocurre esto:

Código: [Seleccionar]
#!/bin/sh
CORREO="mi correo@gmail.com"
FICHERO=/tmp/MAC.txt
FICHERO_PRESENCIA=/tmp/MaryIsON.txt
TIEMPO=3
RANGO_IP=192.168.3.1-254

while :
do
echo $(nmap -v -sP $RANGO_IP) > $FICHERO
if grep "Mac del smartphone" $FICHERO
then
if [ ! -e $FICHERO_PRESENCIA]
then
echo -e "Subject:María está en casa." | sendmail $CORREO
echo 1 > $FICHERO_PRESENCIA
TIEMPO=20
fi
else
if [ -e $FICHERO_PRESENCIA ]
then
echo -e "Subject:María se ha ido." | sendmail $CORREO
rm $FICHERO_PRESENCIA
TIEMPO=3
fi
fi

sleep ${TIEMPO}m
done

Antes de mandar el correo, miramos si el fichero de presencia está. Si no está, mandamos correo, y creamos el fichero de presencia. Si ya está, no hacemos nada porque ya lo hemos mandado.
Cuando detectamos que María se ha ido, miramos si hay fichero de presencia, mandamos el correo, y borramos el fichero de presencia, para evitar que nos sigamos mandando correos.

Si detecta la presencia de la MAC, dormirá 20m, si no la detecta, dormirá 3m.

Para ejecutarlo, ponlo en el rc.local
Código: [Seleccionar]
/etc/conectado.sh &

« Última modificación: 24-06-2016, 12:42 (Viernes) por Tki2000 »

danitool

  • Visitante
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #18 en: 24-06-2016, 16:26 (Viernes) »
No me gusta esto que haceis de escribir ficheros temporales, no veo la necesidad. Así que he creado mi propia versión del script tomando la idea del "semáforo" de Tki2000. El semáforo sería la variable FLAG.

Código: [Seleccionar]
#!/bin/sh
# MAC watchdog, checks if a MAC device exists on the network and alerts by sending an email
# 2016 by danitool, Tki2000, txutxy
CORREO="mi correo@gmail.com"
MAC="00:11:22:33:44:55"
RANGO_IP=192.168.3.1-254
FLAG=0

while :
do
MACSTATE=`nmap -v -sP $RANGO_IP|grep $MAC`
if [ "$MACSTATE" ] && [ $FLAG -eq 0 ]; then
echo -e "Subject:María está en casa." | sendmail $CORREO
FLAG=1
elif [ -z "$MACSTATE" ] && [ $FLAG -eq 1 ]; then
echo -e "Subject:María se ha ido." | sendmail $CORREO
FLAG=0
fi

sleep 5m
done

Creo que con el sleep de 5m en el loop es suficiente. He tratado de simplificar al máximo el script, no sé si se puede simplificar todavía más. Tampoco lo testé en Openwrt, intuyo que debería funcionar pero no puedo asegurarlo.

El script envia correo solo cuando hay un cambio de estado entre MAC detectada y MAC no detectada.



Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2249
Re: Sintaxis para ejecutar script desde rc.local
« Respuesta #19 en: 24-06-2016, 18:55 (Viernes) »
No me gusta esto que haceis de escribir ficheros temporales, no veo la necesidad. Así que he creado mi propia versión del script tomando la idea del "semáforo" de Tki2000. El semáforo sería la variable FLAG.

Lo de los ficheros temporales es simplemente una forma de saber a primera vista que "realmente" está funcionando. Sólo hay que mirar si los ficheros están o no están.
Soy de los que piensan, que cuanto más se optimice un programa, más rápido podrá ir, pero más difícil será depurarlo. Es una función inversa. Hay que encontrar el equilibrio entre lo uno y lo otro.

Además, ni me había molestado en pensar lo del flag.  ;D Thnx.