
fco
(usa Slackware)
Enviado em 12/02/2010 - 18:48h
Uma alternativa para editar arquivos sem abri-los é o sed, cuja sintaxe seria:
$ sed -i 's/procura/substitui/g' Arquivo
Logo em tese, você poderia usar o seguinte:
$ sed -i "s/MaxBytes[_]: 1/MaxBytes[_]: 2/" Arquivo
Só que temos alguns percalços.
1º -> você precisaria saber o valor de MaxBytes inicialmente.
2º -> a linha "MaxBytes[_]: X" teria que ser única.
Considerando a situação ideal, a solução seria mais ou menos assim:
NumClientes=$(mysql --user=root --password=xxxxxxxx --execute="SELECT COUNT(*) FROM radius.radcheck;" ) | cut -c 9-15 | tr -d ' ') #acho que não precisa dos "echos"
MBytesAtual=$(grep MaxBytes mrtg.cfg)
MBytesNova="MaxBytes [_]: ${NumClientes}"
sed -i "s/$MBytesAtual/$MBytesNova/" mrtg.cfg
OBS.: Faça uma cópia do mrtg.cfg teste a abordagem nesta cópia. Todo cuidado é pouco. :)
Abraço.