单位主机经常换IP,VPN会时不时连不上的,IP地址也不能每天去人为看看,于是乎同事教一个简单的办法,写个脚本,每次开机时检查一次,然后把IP等信息发到一个服务器自己的帐户下,这样只要VPN能连上,就可以登录单位的主机了。
这个简单,我会。
ipcheck.sh
!#/bin/sh
ifconfig >ipcheck.txt
scp ipcheck.txt name@domain:/home/name/ipcheck.txt
运行一下可以的。
然后把脚本路径放在/etc/init.d/rc.local中,可是开机重启不行。这个脚本虽然不复杂,但是我看不懂啊,同事说我放错地方了,要放在start函数里,再看看确实是。可这还不行。于是我继续郁闷。然后,我一想,怎么会不能执行呢。大概是权限问题,可没提醒啊。于是在ipcheck.sh中设置一些输出,显示没有输出,那就是我执行./rc.local时根本没运行到这个地方。于是,再看rc.local,一看,应该是我还要传入参数的,于是再运行,./rc.local start 这次运行了,说是没有权限。ipcheck.sh改动吧。在rc.local中改一下了,用我的用户执行这个脚本了。于是,sudo -u name /home/name/ipcheck.sh
然后执行 ./rc.local start 这次好了,但是提示说我没有权限,一看是 ifconfig >ipcheck.txt 这个我明白,改,ifconfig >/home/name/ipcheck.txt ,下面一行也要改,
scp /home/name/ipcheck.txt name@domain:/home/name/ipcheck.txt
然后,这样就好了。传到服务器上我就可以随时查看我的机器更换过的最新IP了。
从这里可以体会到,ubuntu对用户写文件的权限控制是很严格的。再者,我不得不承认,我还是在用win的思路用ubuntu。