Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
143 lecturas y 2 respuestas
  • Automatización de la reconfiguración de samba en HG556a

    "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
    #http://objectmix.com/tcl/376951-expect-suppress-output-screen.html
    #http://trizsolo.wordpress.com/2008/01/07/expect-script-to-verify-resolvconf/
    #http://stackoverflow.com/questions/7789710/expect-script-to-automate-telnet-login
    #http://miguel-fdez.blogspot.com.es/2011/12/setting-smb-server-on-hg556a-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"}

    Este tema lleva más de 6 meses inactivo. Es recomendable que abras un nuevo tema para retomar la conversación.
    1