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:
- Copiar y pegar el script de debajo en un fichero de texto y guardarlo como rolloutcfg.sh
- Darle al script derechos de ejecución:
chmod +x rolloutcfg.sh - 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.
- Reemplazar también usuario y password de la cámara en caso necesario.
- 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).
- 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.