Boa tarde,
Estou com um probleminha para criar um script que monte diversos compartilhamentos em pastas que recebem o nome da máquina de origem. Eis o cenário: temos cerca de 350 computadores rodando windows na nossa rede e tenho acesso de administrador em todas. Preciso alterar a configuração (arquivo .cfg) de um programa específico. Acontece que esse programa recebe um número por computador, o que torna inviável replicar esse arquivo. Através do sed (estou apaixonado por essa ferramenta

) eu consigo alterar a configuração em questão digitando sed -i 's/config_antiga/config_nova/g'.. em conjunto com o find, nem preciso navegar à do arquivo, ele mesmo faz essa tarefa: find . -type f -name arquivo.cfg -exec sed -i 's/config_antiga/config_nova/g' '{}' ';'
Então, montar e desmontar as pastas para acessar os computadores é ainda bastante trabalhoso, então eu escrevi esse script (devo frizar que não sou programador, não manjo absolutamente nada de nenhuma linguagem nem de lógica de programação, sou apenas curioso):
#!/bin/bash
# Executa o comando 'nmblookup' afim de encontrar o hostname das máquinas ligadas:
for ip in $(seq 25 254); do nmblookup -A 10.54.6.$ip | cut -d'<' -f1 | head -2 | sed -e 's/^[ \t]*//' | sed 1d | grep -v -i -e "no reply from" | grep ^SC; done > hostnames_ativos
# Cria uma lista de IPs com base nos hostnames:
for lista in `cat hostnames_ativos`; do ping -c 1 $lista | nawk -F'[()]' '/^PING/ {print $2;exit}'; done > ips_ativos
# Cria as pastas que serão utilizadas na montagem:
for pastas in `cat hostnames_ativos`; do mkdir $pastas; done
# Variáveis para utilização na montagem dos compartilhamentos:
USER="usuário"
DOMAIN="domínio"
PASSWORD="senha"
ORIGEM=`cat ips_ativos`
DESTINO=`cat hostnames_ativos`
# Comando para montar os compartilhamentos:
mount.cifs -o user=$USER,domain=$DOMAIN,password=$PASSWORD //$ORIGEM/c$ $DESTINO
Não tenho problemas em encontrar o hostname das máquinas e nem os ips, os arquivos de auxílio são gerados numa boa. No entanto se houver mais de uma entrada nesses arquivos, surge esse erro:
root@computador:~# ./montar.sh
mount.cifs: illegal character 0x0a in mount entry
Com uma só entrada funciona direitinho!
Alguém tem uma luz?