BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate
ADSL/VDSL

Automatización de la reconfiguración de samba en HG556a

avirgosm

"Repoesteo" aquí una aportación mía en otro foro

Tengo un disco duro con dos particiones, el router por defecto monta ambas particiones pero solo comparte por samba la primera. Dado que el grueso de datos está en la segunda partición, esta es la solución en forma de script para linux usando la herramienta expect.

Espero que os sea útil y claro, abierto a mejoras y críticas.

#!/usr/bin/expect

#Referencias
#objectmix.com/tcl/376951-expect-suppress…-screen.html
#trizsolo.wordpress.com/2008/01/07/expect…-resolvconf/
#stackoverflow.com/questions/7789710/expe…telnet-login
#miguel-fdez.blogspot.com/2011/12/setting…-router.html

#Variables
set timeout 20
set ip [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]

#Conexion
spawn telnet $ip
expect "Login:" { send "$user\r"}
expect "Password:" { send "$pass\r"}
expect "VFAU0000031572>" { send "sh\r"}

#Matamos proceso samba
expect "#" { send "killall smbd\r"}

#Silenciamos la salida para no ver tanta linea de creación del smb.conf
log_user 0

#Creamos el smb.conf a nuestro gusto
expect "#" { send "mv /etc/samba/smb.conf /etc/samba/smb.bak\r"}
expect "#" { send "echo \[Global]\ > /etc/samba/smb.conf\r"}
expect "#" { send "echo \workgroup = vodafone\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \netbios name = vodafone\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \server string = vodafone\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \security = share\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \[CucurTB]\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \path = /var/mnt/USBDisk_2/ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \comment = cucurTB\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \browseable = yes\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \public = yes\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \writable = yes\ >> /etc/samba/smb.conf\r"}
expect "#" { send "echo \guest ok = yes\ >> /etc/samba/smb.conf\r"}

#Reinicio de Samba
expect "#" { send "/bin/smbd -D\r"}

#Recuperamos la salida
log_user 1

#Desconexion
expect "#" { send "exit\r"}
expect "VFAU0000031572>" { send "logout\r"}

BocaDePez

Sólo eso?.

🗨️ 1
avirgosm

Pues si. Jajaja. Era lo que necesitaba y me parecio util compartirlo, mas cuando yo de hacker np yengo nada y fue un procedo hacer y aprender (y seguro que es una chapuza, pero como para los magufos homeopaticos:a mi me funciona ;P