我有一台通过 VPN 连接到公司网络的机器。当我连接到 VPN 时,它总是给我一个不同的主机名和 IP 地址。主机名总是远程-[ip 地址的最后一个八位字节]。每当我想通过 SSH 连接到我的机器时,我首先必须运行“主机名 -A”以查看主机名是什么。问题是,当我需要访问计算机时,我并不总是知道我的主机名是什么。(如果我去计算机所在的物理位置查找主机名,则不需要 SSH。)
我可以使用 SSH 并尝试子网中的每个主机名/IP,直到找到与正确密钥文件匹配的主机名/IP 吗?
我正在使用带有 cygwin 的 Windows 笔记本电脑(也通过 vpn 连接)通过 ssh 连接到 Ubuntu 12.04 机器。我不知道为什么当我连接到 vpn 时会得到一个不同的主机名,但它是一个公司网络,所以他们可以做任何他们想做的事情。
这里有几个选项,从最简单到最复杂列出。不出所料,这一切都很好,更好,最好。
使用 crontab 以某个时间间隔使用您的主机名更新远程系统上的文件。
创建/编辑 Crontab: crontab -e
添加 Crontab 条目:要创建仅在周末的工作日每小时更新文件的作业,请使用以下示例:
00 09-18 * * 1-5 ssh usr@example.com "echo $(hostname -A) > ubuntuhost.name"
使用 crontab 每隔一段时间将您的主机名通过电子邮件发送给自己。
安装Mailutils: sudo apt-get update && sudo apt-get install mailutils
注意:如果由mailutils 安装支持,选择'internet connection',应该是第一个选项。
创建/编辑 Crontab: crontab -e
添加 Crontab 条目:要创建一个作业,该作业仅在周末工作日每小时向您发送电子邮件,主题行为主机名,请使用以下示例:
00 09-18 * * 1-5 mail -s "Ubuntu $(hostname -A)" you@you.com < /dev/null
每当连接发生变化时,使用 NetworkManager Dispatcher 通过电子邮件发送您当前的主机名。
将此脚本放在 /etc/NetworkManager/dispatcher.d 中,将其命名为“50emailhostname”
#!/bin/sh -e #确保我是可执行的(chmod 775) echo "interface: $1, action: $2" >> /tmp/interface.log #debug if [ "$1" = "eth0" ] && [ "$2" = "up" ] 然后 mail -s "Ubuntu $(hostname -A)" you@you.com > /tmp/interface.log #debug 别的 回声“假”>> /tmp/interface.log #debug 菲 出口
笔记:
tail -f /tmp/interfaces.log
在单独的窗口中查看它在做什么$(ifconfig | awk -F':' '/inet addr/&&!/127.0.0.1/{split($2,_," ");print _[1]}')
归档时间: |
|
查看次数: |
5926 次 |
最近记录: |