为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

sh/bash/dash/ksh/zsh等Shell脚本
回复
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#1

帖子 ouxijv » 2012-10-19 20:03

事情是这样的。每次自己点vpn连接很费事,就写了一个脚本放在/etc/network/if-up.d/里面,但是问题时这样会出现什么连接vpn失败,没有正确的secret。但是手动运行的话,就又正确了,成功的连上vpn,很不解啊。

#! /bin/bash
sleep 5
REQUIRED_CONNECTION_NAME="School" # change School to your network connection name
VPN_CONNECTION_NAME="Netvpn" # change Netvpn to your VPN connection name

activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
nmcli con up id "${VPN_CONNECTION_NAME}"
fi

2楼 我错了。。。。
上次由 ouxijv 在 2012-10-19 20:18,总共编辑 1 次。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#2

帖子 枫叶饭团 » 2012-10-19 20:07

脚本也不贴出来,你当我们们是神啊
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#3

帖子 ouxijv » 2012-10-19 20:19

我错了 已更新。
枫叶饭团 写了:脚本也不贴出来,你当我们们是神啊
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#4

帖子 枫叶饭团 » 2012-10-19 20:29

#! /bin/bash
中间的那个空格不知道有没有影响呃。。。
完全看不懂的说
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#5

帖子 ouxijv » 2012-10-19 20:37

脚本应该是对的。手动运行就能成功。 放到那个文件夹下自动运行就会出错 我也很纳闷啊。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#6

帖子 lilydjwg » 2012-10-19 22:35

请贴完整的错误信息。
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#7

帖子 ouxijv » 2012-10-19 23:04

lilydjwg 写了:请贴完整的错误信息。

http://thesingularity.pl/blog/2011/solv ... ntu-11-10/
我就是按着这个文章弄的 但出现和底下回复那个人同样的问题
If I run the script manually it works. However, when it executes automatically, I get an error that the password was not found.
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#8

帖子 ouxijv » 2012-10-19 23:09

图片
这是截图
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#9

帖子 lilydjwg » 2012-10-20 10:44

ouxijv 写了:图片
这是截图
网络太卡看不到 :-(
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#10

帖子 ouxijv » 2012-10-20 11:14

http://www.flickr.com/photos/88321040@N05/8102849731/
上传到flickr了,点这个链接看吧。
右上角是出错信息。
我要是手动运行就能成功,很晕,完全搞不懂。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#11

帖子 lilydjwg » 2012-10-20 18:33

ouxijv 写了:http://www.flickr.com/photos/88321040@N05/8102849731/
上传到flickr了,点这个链接看吧。
右上角是出错信息。
我要是手动运行就能成功,很晕,完全搞不懂。
都说了看不到的哇。唉……
头像
tooktang
帖子: 674
注册时间: 2010-07-15 18:30

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#12

帖子 tooktang » 2012-10-20 18:41

不放在 /etc/network/if-up.d/ 里面呢?开机自动运行有许多地方可以做到,优先级各个不同,或许,或许在这个脚本运行时,nmcli 或者其他什么东西还没有准备好?

如果是我,我会把脚本放在自己的 /home 里面,然后做一个启动器指向这个脚本,用自带的启动管理添加那个启动器。
我是OS控…
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#13

帖子 ouxijv » 2012-10-20 21:24

tooktang 写了:不放在 /etc/network/if-up.d/ 里面呢?开机自动运行有许多地方可以做到,优先级各个不同,或许,或许在这个脚本运行时,nmcli 或者其他什么东西还没有准备好?

如果是我,我会把脚本放在自己的 /home 里面,然后做一个启动器指向这个脚本,用自带的启动管理添加那个启动器。

我现在就是按你说的这么弄的。
放到那个文件夹有一个好处,就是每次连接网络的时候都会调用那个脚本。只是现在特别想知道这个是怎么回事。
头像
tooktang
帖子: 674
注册时间: 2010-07-15 18:30

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#14

帖子 tooktang » 2012-10-21 11:20

ouxijv 写了:
tooktang 写了:不放在 /etc/network/if-up.d/ 里面呢?开机自动运行有许多地方可以做到,优先级各个不同,或许,或许在这个脚本运行时,nmcli 或者其他什么东西还没有准备好?

如果是我,我会把脚本放在自己的 /home 里面,然后做一个启动器指向这个脚本,用自带的启动管理添加那个启动器。

我现在就是按你说的这么弄的。
放到那个文件夹有一个好处,就是每次连接网络的时候都会调用那个脚本。只是现在特别想知道这个是怎么回事。

这个就不太清楚了,只好等大神了~0.0
我是OS控…
ouxijv
帖子: 10
注册时间: 2011-11-02 19:07

Re: 为什么一个自动连接vpn的脚本,手动运行正确自动运行就错误?

#15

帖子 ouxijv » 2013-03-05 10:39

最近才发现这个问题的真正原因是,系统在网络连接启动时是以root权限去运行/etc/network/if-up.d/下的所有脚本,而此时root用户中并没有airvpn的相关密码。
所以只要将nmcli con up id “${VPN_CONNECTION_NAME}”改为
su {你的用户名} -c “nmcli con up id “${VPN_CONNECTION_NAME}””
目前为止运行良好。

具体可以查看 http://ouxijv.us/blog/?p=179

感谢楼上各位~~~~~
回复