Я хотел бы добавить закладку в наутилусе к sftp серверу, IP-адрес которого изменяется со временем.
Я соединяюсь через sftp с (облачный экземпляр Google) сервер, вставляя в файловый менеджер адрес:
sftp://username@xx.xxx.xx.xx/home/
где xx.xxx.xx.xx является IP-адресом. Я хотел бы добавить это как закладку в Наутилусе, с которым я могу легко сделать ctrl +d
. Однако IP-адрес продолжает изменяться со дня на день. Я могу получить IP-адрес с командой как:
gcloud compute instances describe instancename --format="get(networkInterfaces[0].accessConfigs[0].natIP)"
Есть ли какой-либо способ, которым у меня может быть динамическая закладка Наутилуса, которая использовала бы команду выше для создания корректного адреса? Или я могу выполнить команду сам для обновления статической закладки наутилуса?
Спасибо!
Можно добавить поддельный домен, указывающий на IP
Редактирование /etc/hosts
, и добавить
xx.xxx.xx.xx my_foo_domain
Для доступа затем, Вы просто вставляете sftp://your_user@my_foo_domain
Этот способ, которым Вы не должны создавать ярлык каждый раз, но Вы имеете к редактирование /etc/hosts
каждый раз. Можно создать команду для обновления IP, как (скопируйте Ваш /etc/hosts
):
sed -i -E 's/^[.0-9]*[[:blank:]](my_foo_domain)/<your new ip> \1/' /etc/hosts
можно создать функцию, помещенную в Ваш .bahsrc
:
_renew_ip() {
ip=$(gcloud compute instances describe instancename --format="get(networkInterfaces[0].accessConfigs[0].natIP)")
sed -i -E "s/^[.0-9]*[[:blank:]]*(my_foo_domain)/$ip \1/" /etc/hosts
}
alias renew_ip='bash -c "$(declare -f _renew_ip); _renew_ip"'
alias sudo='sudo '
И затем можно просто вызвать функцию:
sudo renew_ip