Scripts para cambiar parte de la configuración en cámaras MOBOTIX

Para cambiar de manera masiva la configuración de muchas cámaras es posible usar el método “Remote Config”.
Un compañero me ha pasado un script tipo Bash que usa CURL para usar como ejemplo. En este ejemplo vamos a cambiar el servidor NTP al que se conectan las cámaras, pero el mismo tipo de script es aplicable al cambio de otras secciones de la configuración de las mismas.
Si no tenéis una máquina Linux podéis descargar CygWin que es gratis e instalarlo bajo Windows.
Cuando lo instaléis recordad seleccionar Curl como paquete adicional.
Una vez que tengáis operativo el entorno Linux seguid las siguientes instrucciones:
  1. Copiar y pegar el script de debajo en un fichero de texto y guardarlo como “rolloutcfg.sh”
  2. Darle al script derechos de ejecución:  chmod +x rolloutcfg.sh
  3. Reemplazar las direcciones IP de los servidores NTP en la variable “string” del script (por ejemplo, 172.22.0.40 172.22.0.41 172.22.0.43). Si son varios servidores las IPs deben ir separadas por espacios.
  4. Reemplazar también usuario y password de la cámara en caso necesario.
  5. Crear un fichero de texto (file.txt) en la misma carpeta donde tengamos el script y escribir todas las direcciones IP de las cámaras que queramos actualizar (una IP por línea).
  6. Lanzar el script con el siguiente comando: ./rolloutcfg.sh
El script leerá vuestro fichero de texto (línea por línea), establecerá una conexión HTTP con la cámara y cambiará el servidor NTP.
Para cada cámara encontraréis una línea de log en el fichero report.txt.
#!/bin/bash

log_line() {

   echo -n -e "$(date) - $IP_add - $*\r\n">> $log_file
   echo "$IP_add - $*"

}

user=admin
pwd=meinsm
port=80
now=$(date)
log_file=result.log
string="helo\\nwrite params\\ntime/TIMESERVER=172.22.0.40 172.22.0.41 172.22.0.43\\nupdate\\nstore\\nquit\\n"

while read line           
do

   IP_add=$(echo -n -e $line | awk '{print $1}')
   echo -e "$string" | curl -q -v -u ${user}:${pwd} --data-binary @- http://${IP_add}:${port}/admin/remoteconfig

   ret=$?
   if [ $ret != 0 ] ; then
	log_line "Error: ${ret} - Send configuration FAILED to camera $IP_add"
   else
	log_line "Configuration successfully sent to camera $IP_add"
   fi

done <file.txt

exit 0
Espero que os sea de utilidad. Comentadme en caso de que tengáis alguna dificultad o error.

También te podría gustar...

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: