我想在 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