
jorgessn
(usa Ubuntu)
Enviado em 03/05/2013 - 11:18h
Bom dia, se alguém puder me ajudar eu agradeço.
Meu problema é esse:
tenho um script que checa meu ip no ifconfig.me e troca no arquivo do ftp "/etc/vsftpd.conf", se meu ip mudar ele atualiza no arquivo, porém, quando cai a conexao de internet ele apaga o ip do arquivo e depois ele não troca mais por não achar o valor de 0a9 no arquivo, então eu queria que se não achar ip de internet, setar um valor default na linha do arquivo vsftpd.conf para ficar assim:
pasv_address=7.7.7.0
porque se cai a internet a linha fica assim:
pasv_address=
e dai o script não atualiza mais o ip no arquivo vsftpd porque ele não acha os valore numericos na expressão "IP_ANTIGO=$( egrep -i 'pasv_address' $ARQUIVO_ALVO | egrep -o '[0-9].*[0-9]'", segue o script com a parte que ta dando erro destacado com "->":
"
#!/bin/bash
# arquivo de configuração a ser alterado
ARQUIVO_ALVO='/etc/vsftpd.conf'
# estou buscando o ip antigo baseado na linha que inicia com 'pasv_address'
IP_ANTIGO=$( egrep -i 'pasv_address' $ARQUIVO_ALVO | egrep -o '[0-9].*[0-9]' )
# o novo ip (seu ip externo/ usado pelo no-ip):
IP_NOVO=$(wget -q -O /tmp/ip ifconfig.me/ip; cat /tmp/ip)
-> if [ $IP_NOVO='[]' ];
-> then
-> set $IP_NOVO='7.7.7.0'
-> fi
# a troca do ip antigo pelo novo
sed -i "s/$IP_ANTIGO/$IP_NOVO/g" $ARQUIVO_ALVO
/etc/init.d/vsftpd restart
/etc/init.d/smbd restart
"
Agradeço a atenção,
Jorgessn.