Também precisamos determinar o OLDIP porque é isso que substituímos:
OLDIP='grep -w away -A 1 /etc/ssh/ssh_config | awk '/Hostname/ {print $2}''
É necessário que aqui a linha Nome do host esteja exatamente abaixo da linha Host away
, caso contrário você teria que ajustar -A 1
para -A 2
.
-w away
corresponde à linha em que você está com a palavra
-A 1
mostra uma linha após a linha ter sido correspondida
awk '/Hostname/ {print $2}'
das poucas linhas correspondidas anteriormente, só mantemos a linha de nome de host e, a partir delas, mantemos apenas a segunda coluna.
Então, apenas fazemos um sed para substituir o OLDIP pelo IP.
sed -i "s/$OLDIP/$IP/g" /etc/ssh/ssh_config
A coisa do buraco seria algo como:
#!/bin/sh
IP=$(wget http://ipecho.net/plain -qO-)
OLDIP='grep -w away -A 1 /etc/ssh/ssh_config | awk '/Hostname/ {print $2}''
sed -i "s/$OLDIP/$IP/g" /etc/ssh/ssh_config