Linux 项目 shell 自动获取报告本机IP | 通过shell 自动获取报告本机IP

Posted xiaote

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 项目 shell 自动获取报告本机IP | 通过shell 自动获取报告本机IP相关的知识,希望对你有一定的参考价值。

由于电脑设置静态IP经常出现链接不上网络,动态IP又非常不方便,故有了这个想法并实现

原理:

  Linux,包含PC机器,树莓派等,通过shell 自动获取报告本机IP  | 通过 Mutt+Msmtp邮箱发送    

此次使用树莓派3B实现步骤:

 

1.安装mutt 和 Msmtp

$ sudo apt -get install mutt   //安装mutt,其他系统使用相应包管理

$ sudo apt-get install msmtp   //安装msmtp,其他系统使用相应包管理

2.在/etc/Muttrc 下配置 mutt

##2019 1 25 send ip to my mail
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname=" Pi‘s address4  "
set from =  A 邮箱地址
set envelope_from=yes
set crypt_use_gpgme = no

 

3.在/root/下  新建配置msmtp

account default
host smtp.aliyun.com                
from your A mail @aliyun.com
auth plain
user your A mail @aliyun.com   //A邮箱地址
password  密码                       
logfile ~/.msmtp.log  // 存储日志

 

4.编写shell 获取 ip 并发送

 

# check network availability 
while true
do
  TIMEOUT=5
  SITE_TO_CHECK="www.163.com"
  RET_CODE=`curl -I -s --connect-timeout $TIMEOUT $SITE_TO_CHECK -w %{http_code} | tail -n1`
  if [ "x$RET_CODE" = "x200" ]; then
  echo "Network OK, will send mail..."
  break
  else
  echo "Network not ready, wait..."
  sleep 1s
  fi
done
 
# get the IP address of eth0
ETH0_IP_ADDR=` ifconfig wlan0 | sed -n "2,2p" | awk {print substr($2,1)} `
ECHO_IP=`ifconfig  `
# send the Email
echo " test  ifconfig wlan0:$ECHO_IP " | mutt -s "Current time:`date ‘+%F %T‘`    Raspiberry: $ETH0_IP_ADDR " B 邮箱地址

此时通过运行脚本便可发送  ip   到  B邮箱

 

5.添加开机自启动脚本就可实现   -->> 开机启动的多种方式设置

这次使用 更改/etc/rc.load 方式自启动,在exit0 上面添加内容

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\\n" "$_IP"
fi
#在exit0 上面添加内容
su pi -c "source /etc_sh/send_ip_mail.sh"   //shell文件地址
exit 0

 

以上是关于Linux 项目 shell 自动获取报告本机IP | 通过shell 自动获取报告本机IP的主要内容,如果未能解决你的问题,请参考以下文章

Linux中用shell编程获取IP地址及MAC地址

编写shell脚本获取本机的网络地址?

shell脚本如何实现把IP组里的ip逐个输出,并循环完成指定任务?

shell笔记:获取本机IP地址

获取本机ip的shell脚本

boot项目配置文件中的数据库地址怎样根据本机自动获取