windows系統的linux,在每一次啟動的時候ip總是變動的,導緻在windows系統中連接linux下的mysql服務總是失敗,那是否可以在啟動linux系統的時候就将ip地址綁定到windows的hosts文件中呢?這樣通過本地的域名就能連接到linux系統的服務了。
編寫腳本編寫shell腳本:modify_hosts.sh
#!/bin/bash
params[1]=$1
# get ip address
ip_addr=$(ip addr|grep eth0|grep inet|awk '{print $2}'|cut -d / -f 1)
# ifconfig eth0|sed -n '2p'|awk '{print $2}' #該命令獲取ip地址更為簡潔
# 判斷參數是否為空
if [ -z ${params[1]} ]
then
#為空,則獲取系統的名稱
sys_name=$(cat /etc/lsb-release|grep ID|cut -d = -f 2)
else
#不為空,則取第一個參數名
sys_name=${params[1]}
fi
host_name=$sys_name".wsl"
win_host_path=/mnt/c/Windows/System32/drivers/etc/HOSTS
#獲取行号
line_no=$(nl -b a $win_host_path|grep $host_name|awk '{print $1}')
for line in $line_no
do
#删除該行的内容
sed -i $line'd' $win_host_path
done
#追加ip的映射
echo $ip_addr' '$host_name >> $win_host_path
[ -f "$win_host_path" ] && echo "windows host:"$(nl $win_host_path|grep $host_name) && echo 'linux ip addr:'$ip_addr
exit 0
為了能讓腳本每次啟動的時候自動運行,可以修改~/.bashrc文件,并在最後添加如下代碼:
bash /root/shell_scripts/modify_host.sh myubuntu
# 下面的代碼是想每次啟動的時候确保mysql服務也啟動了
service mysql status|grep -w stopped
if [ $? -eq 0 ]
then
service mysql start
fi
,