每次启动时将我的 IP 发送到远程服务器

每次启动时将我的 IP 发送到远程服务器

我想在每次启动时自动发送计算机的 IP。我编辑/etc/rc.local

sleep 10
ifconfig > /tmp/myip
scp /tmp/myip <server>
exit 0

inet addr, Bcast, Mask我试过了,里面没有/tmp/myip。我猜网络是在脚本之后启动的。那么该怎么做呢?非常感谢!

答案1

ifconfig不显示输出,可能是因为在运行时,网络设置尚未完全完成。此外,不能 100% 保证动态 IP 地址不会在服务器正常运行时间内发生变化。

如果使用dhclient,请将脚本移动到该目录/etc/dhcp/dhclient-exit-hooks.d,以便它执行通过 DHCP 获取 IP 地址。 Debian 通常会填充此目录;如果它不存在,则可能需要创建它。

可以更改脚本以在启动时以及每次更改时发送 IP 地址。请注意,根据您的 IP 地址 DHCP 租用期限,您可能或者也许不会每次都有兴趣复制它。

如果在 ISP/Internet 环境中,使用动态 DNS 服务可能也(更)有趣。

请参阅此了解更多详细信息处理 ISP 更改 IP 地址的更好方法?

http://manpages.ubuntu.com/manpages/wily/man8/dhclient-script.8.html

答案2

解决方案取决于您使用的 dhcp 客户端守护程序。大多数发行版(在 *bsd 和 linux 上)使用dhcpcddhclient.在这两种情况下,您都可以将脚本插入客户端配置中。

  • dhcpcd/etc/dhcpcd.sh每次受控接口启动或关闭时运行脚本(如果存在)。您只需scp在此脚本中插入您的即可。

    Hooking into DHCP events
      dhcpcd will run /etc/dhcpcd.sh, or the script specified by the -c,
      --script option. It will set $1 to a shell compatible file that holds
      various configuration settings obtained from the DHCP server and $2 to
      either up, down or new depending on the state of dhcpcd.  dhcpcd ignores
      the exist code of the script.
    
  • dhclientETCDIR/dhclient-exit-hooks在设置接口后立即调用脚本。您可以按照手册页Hook部分中的说明进行操作dhclient-script

    After all processing has completed, CLIENTBINDIR/dhclient-script checks
    for  the  presence  of an executable ETCDIR/dhclient-exit-hooks script,
    which if present is invoked using the ´.´ command.  The exit status  of
    dhclient-script  will be passed to dhclient-exit-hooks in the exit_sta-
    tus shell variable, and will always be zero if the script succeeded  at
    the  task  for  which  it was invoked.   The rest of the environment as
    described previously for dhclient-enter-hooks is  also  present.    The
    ETCDIR/dhclient-exit-hooks  script  can modify the valid of exit_status
    to change the exit status of dhclient-script.
    

答案3

ifconfig ethx > /tmp/myip

x 是您的接口号,例如 eth0

相关内容