Nautilus:为随着 IP 变化的 sftp 文件夹添加动态书签?

Nautilus:为随着 IP 变化的 sftp 文件夹添加动态书签?

我想在 nautilus 中将书签添加到其 ip 地址随时间变化的 sftp 服务器。

我正在通过 sftp 连接到(谷歌云实例)服务器,并在文件资源管理器中插入地址:

sftp://[email protected]/home/

其中 xx.xxx.xx.xx 是 IP 地址。我想将其作为书签添加到 Nautilus 中,我可以轻松做到这一点ctrl +d。但是,IP 地址每天都在变化。我可以使用以下命令检索 IP 地址:

gcloud compute instances describe instancename --format="get(networkInterfaces[0].accessConfigs[0].natIP)"

有什么方法可以让我拥有动态 Nautilus 书签,使用上面的命令来创建正确的地址吗?或者我可以自己运行命令来更新静态 nautilus 书签吗?

谢谢!

答案1

您可以添加指向该 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

相关内容