我们的项目中没有使用root用户登录。
现在要在shell程序中使用ping命令去检测网络连通性,该怎么办?
求大师指点!!!
36 个解决方案
#1
setuid吧 linux下的ping命令都是这样的。
#ll /bin/ping
-rwsr-xr-x 1 root root 35832 9月 27 2009 /bin/ping
做法
chmod a+x /path/ping
chmod u+s /path/ping
#ll /bin/ping
-rwsr-xr-x 1 root root 35832 9月 27 2009 /bin/ping
做法
chmod a+x /path/ping
chmod u+s /path/ping
#2
我在sun环境中,普通用户怎么能用ping呢
是不是你没有设置ping的搜索路径?我的是/usr/sbin/ping
是不是你没有设置ping的搜索路径?我的是/usr/sbin/ping
#3
我的solaris跟你一样 也可以用 但是权限也是-r-sr-xr-x
因为原始套接字只有root才有权限的
#4
改了以后权限是-r-sr-xr-x,还不能用
#5
如何不能用??
有什么提示啊?
有什么提示啊?
#6
我的虚拟机突然ping不通外面 但是外面可以ping通里面,也可以从外面ftp,telnet连到虚拟机,这是为什么。。。。
#7
我的虚拟机突然ping不通外面 但是外面可以ping通里面,也可以从外面ftp,telnet连到虚拟机,这是为什么。。。。
---------------------
这不一定是ping命令不好用哦。如果是你没权限用ping的 肯定会提示错误。
你设置防火墙之类的了吗?你的windows有防火墙?
试试 ping 8.8.8.8
试试 traceroute 外面ip
---------------------
这不一定是ping命令不好用哦。如果是你没权限用ping的 肯定会提示错误。
你设置防火墙之类的了吗?你的windows有防火墙?
试试 ping 8.8.8.8
试试 traceroute 外面ip
#8
ping 8.8.8.8 不行
traceroute 10.16.1.224 这个30hops max 40 byte packets
什么意思?
traceroute 10.16.1.224 这个30hops max 40 byte packets
什么意思?
#9
traceroute 10.16.1.224 这个30hops max 40 byte packets
----------------------
然后就没反应了吗?看来到10.16.1.224也不通。这个是你的gataway?
----------------------
然后就没反应了吗?看来到10.16.1.224也不通。这个是你的gataway?
#10
也可以从外面ftp,telnet连到虚拟机
--------------
你把外面的这个机器的防火墙设置无效 然后再从虚拟机里ping一下。
--------------
你把外面的这个机器的防火墙设置无效 然后再从虚拟机里ping一下。
#11
哦 然后有 1 10.16.11.13(10.16.11.13) 0.513ms 0.307ms 10.16.1.224(10.16.1.224) 0.376ms
#12
可以ping通外面了
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
#13
可以ping通外面了
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
-----------------
说明你的solaris的ping命令 没有-w选项。
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
-----------------
说明你的solaris的ping命令 没有-w选项。
#14
windows下的ping
-w timeout 设置timeout的秒数
我的linux下
-w waittime 设置ping的时间 时间到了 ping结束
似乎意思不一样
solaris下 如果你要设置timeout时间的话 直接这样ping ip/host timout
-w timeout 设置timeout的秒数
我的linux下
-w waittime 设置ping的时间 时间到了 ping结束
似乎意思不一样
solaris下 如果你要设置timeout时间的话 直接这样ping ip/host timout
#15
那要怎么测试连通性?
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
#16
windows的那个说错了 应该是毫秒。
那要怎么测试连通性?
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
--------------------
让你输入root密码?
那要怎么测试连通性?
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
--------------------
让你输入root密码?
#17
不是很清楚
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
不清楚是要输入什么密码。。。
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
不清楚是要输入什么密码。。。
#18
不是很清楚
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------------
代码已经执行到后面了 出现Password: 跟ping已经没关了(不信你先把>/dev/null去掉 就能看到ping的输出) 不知道你后面的代码是什么
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------------
代码已经执行到后面了 出现Password: 跟ping已经没关了(不信你先把>/dev/null去掉 就能看到ping的输出) 不知道你后面的代码是什么
#19
那个在代码里就这么写?
ping 10.16.1.224/host timout
host timout是什么意思呢 ?
ping 10.16.1.224/host timout
host timout是什么意思呢 ?
#20
那个在代码里就这么写?
ping 10.16.1.224/host timout
-----------------------------
你理解错我的意思了
ping ip/host timout 的意思是ping ip或者host timeout
ping ip 比如ping 8.8.8.8
ping host 比如www.yahoo.co.jp
timeout是超时间隔
ping 10.16.1.224/host timout
-----------------------------
你理解错我的意思了
ping ip/host timout 的意思是ping ip或者host timeout
ping ip 比如ping 8.8.8.8
ping host 比如www.yahoo.co.jp
timeout是超时间隔
#21
因为ping既可以针对ip 也可以针对主机名 所以我写成ping ip/host
#22
不是很清楚
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------
我猜测一下 你是不是在判断ftp服务器时否能ping通 如果能ping通你就登录ftp把
1.那你$PING $FTPSERVERIP >/dev/null 这样 后面根本没有判断是否ping通了啊
2.出现Password: 估计你的ftp部分代码没加自动登录自动交互的参数-n和-i 所以是在让你输入密码了
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------
我猜测一下 你是不是在判断ftp服务器时否能ping通 如果能ping通你就登录ftp把
1.那你$PING $FTPSERVERIP >/dev/null 这样 后面根本没有判断是否ping通了啊
2.出现Password: 估计你的ftp部分代码没加自动登录自动交互的参数-n和-i 所以是在让你输入密码了
#23
哦 这个知道
我能继续问别的问题不啊?
那个输入密码的提示是ftp那里产生的
result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
这里为什么会提示输入密码呢?以前的就没有。。。。
我能继续问别的问题不啊?
那个输入密码的提示是ftp那里产生的
result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
这里为什么会提示输入密码呢?以前的就没有。。。。
#24
1.$PING $FTPSERVERIP >/dev/null 这个后面怎么判断啊?
2.result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
有-n的参数啊
2.result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
有-n的参数啊
#25
你的命令写错啦
正确的是bye 你写出by了!
正确的是bye 你写出by了!
#26
不过又想了一下 是不是你的
$USERNAME和$USERPW为空?
$USERNAME和$USERPW为空?
#27
这个是我说错了 by也是可以的
#28
之前都用的是by啊 得是Solaris和sude这个地方不一样。。。我改改试试
#29
这个我说错了 然你输入密码 可能是因为你的$USERNAME $USERPWD为空了
#30
#31
哦 发现了 之前解密的密码没解密出来 密码是空的 谢谢了 我在看看
#32
能帮我再看看下面这段代码哪里出错了吗?
我怀疑Solaris下awk用法的问题
$FTPDIR和$filedir都是有值的,这个我前面输出过。
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
这里面就没有得到指定文件下的文件信息。${FILELIST}执行完是空的
我怀疑Solaris下awk用法的问题
$FTPDIR和$filedir都是有值的,这个我前面输出过。
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
这里面就没有得到指定文件下的文件信息。${FILELIST}执行完是空的
#33
你这个脚本 在我这里加一句 就正常执行了 我这个passiv默认是off的 需要输入passiv就可以了
另外你要确认你的每个变量都不为空
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
passiv
cd $FTPDIR/$filedir
ls -l
by
EOF
另外你要确认你的每个变量都不为空
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
passiv
cd $FTPDIR/$filedir
ls -l
by
EOF
#34
又有一行包这个错误。。。
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
PORT=21
fi
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
done
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
PORT=21
fi
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
done
#35
哦的神啊 ..
让主席休息一下..
那是因为你的脚本是dos格式的
使用dos2unix转换一下试试
让主席休息一下..
那是因为你的脚本是dos格式的
使用dos2unix转换一下试试
#36
又有一行包这个错误。。。
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
------------------
你是不是在windows下写的脚本? 应该是在do后面多了^M dos下的换行在linux/Unix下经常变成^M
你执行一下
dos2unix 你的脚本
要是不行 你就删掉do那行 在手工添上
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
------------------
你是不是在windows下写的脚本? 应该是在do后面多了^M dos下的换行在linux/Unix下经常变成^M
你执行一下
dos2unix 你的脚本
要是不行 你就删掉do那行 在手工添上
#1
setuid吧 linux下的ping命令都是这样的。
#ll /bin/ping
-rwsr-xr-x 1 root root 35832 9月 27 2009 /bin/ping
做法
chmod a+x /path/ping
chmod u+s /path/ping
#ll /bin/ping
-rwsr-xr-x 1 root root 35832 9月 27 2009 /bin/ping
做法
chmod a+x /path/ping
chmod u+s /path/ping
#2
我在sun环境中,普通用户怎么能用ping呢
是不是你没有设置ping的搜索路径?我的是/usr/sbin/ping
是不是你没有设置ping的搜索路径?我的是/usr/sbin/ping
#3
我的solaris跟你一样 也可以用 但是权限也是-r-sr-xr-x
因为原始套接字只有root才有权限的
#4
改了以后权限是-r-sr-xr-x,还不能用
#5
如何不能用??
有什么提示啊?
有什么提示啊?
#6
我的虚拟机突然ping不通外面 但是外面可以ping通里面,也可以从外面ftp,telnet连到虚拟机,这是为什么。。。。
#7
我的虚拟机突然ping不通外面 但是外面可以ping通里面,也可以从外面ftp,telnet连到虚拟机,这是为什么。。。。
---------------------
这不一定是ping命令不好用哦。如果是你没权限用ping的 肯定会提示错误。
你设置防火墙之类的了吗?你的windows有防火墙?
试试 ping 8.8.8.8
试试 traceroute 外面ip
---------------------
这不一定是ping命令不好用哦。如果是你没权限用ping的 肯定会提示错误。
你设置防火墙之类的了吗?你的windows有防火墙?
试试 ping 8.8.8.8
试试 traceroute 外面ip
#8
ping 8.8.8.8 不行
traceroute 10.16.1.224 这个30hops max 40 byte packets
什么意思?
traceroute 10.16.1.224 这个30hops max 40 byte packets
什么意思?
#9
traceroute 10.16.1.224 这个30hops max 40 byte packets
----------------------
然后就没反应了吗?看来到10.16.1.224也不通。这个是你的gataway?
----------------------
然后就没反应了吗?看来到10.16.1.224也不通。这个是你的gataway?
#10
也可以从外面ftp,telnet连到虚拟机
--------------
你把外面的这个机器的防火墙设置无效 然后再从虚拟机里ping一下。
--------------
你把外面的这个机器的防火墙设置无效 然后再从虚拟机里ping一下。
#11
哦 然后有 1 10.16.11.13(10.16.11.13) 0.513ms 0.307ms 10.16.1.224(10.16.1.224) 0.376ms
#12
可以ping通外面了
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
#13
可以ping通外面了
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
-----------------
说明你的solaris的ping命令 没有-w选项。
但是用ping -w 说-w 是illegal option,我们之前版本都是用-w来检查的。
-----------------
说明你的solaris的ping命令 没有-w选项。
#14
windows下的ping
-w timeout 设置timeout的秒数
我的linux下
-w waittime 设置ping的时间 时间到了 ping结束
似乎意思不一样
solaris下 如果你要设置timeout时间的话 直接这样ping ip/host timout
-w timeout 设置timeout的秒数
我的linux下
-w waittime 设置ping的时间 时间到了 ping结束
似乎意思不一样
solaris下 如果你要设置timeout时间的话 直接这样ping ip/host timout
#15
那要怎么测试连通性?
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
#16
windows的那个说错了 应该是毫秒。
那要怎么测试连通性?
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
--------------------
让你输入root密码?
那要怎么测试连通性?
刚才试了一下只用ping 10.16.1.XXX
然后运行的时候竟然要我输入密码。。。
--------------------
让你输入root密码?
#17
不是很清楚
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
不清楚是要输入什么密码。。。
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
不清楚是要输入什么密码。。。
#18
不是很清楚
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------------
代码已经执行到后面了 出现Password: 跟ping已经没关了(不信你先把>/dev/null去掉 就能看到ping的输出) 不知道你后面的代码是什么
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------------
代码已经执行到后面了 出现Password: 跟ping已经没关了(不信你先把>/dev/null去掉 就能看到ping的输出) 不知道你后面的代码是什么
#19
那个在代码里就这么写?
ping 10.16.1.224/host timout
host timout是什么意思呢 ?
ping 10.16.1.224/host timout
host timout是什么意思呢 ?
#20
那个在代码里就这么写?
ping 10.16.1.224/host timout
-----------------------------
你理解错我的意思了
ping ip/host timout 的意思是ping ip或者host timeout
ping ip 比如ping 8.8.8.8
ping host 比如www.yahoo.co.jp
timeout是超时间隔
ping 10.16.1.224/host timout
-----------------------------
你理解错我的意思了
ping ip/host timout 的意思是ping ip或者host timeout
ping ip 比如ping 8.8.8.8
ping host 比如www.yahoo.co.jp
timeout是超时间隔
#21
因为ping既可以针对ip 也可以针对主机名 所以我写成ping ip/host
#22
不是很清楚
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------
我猜测一下 你是不是在判断ftp服务器时否能ping通 如果能ping通你就登录ftp把
1.那你$PING $FTPSERVERIP >/dev/null 这样 后面根本没有判断是否ping通了啊
2.出现Password: 估计你的ftp部分代码没加自动登录自动交互的参数-n和-i 所以是在让你输入密码了
echo "here is ping"
$PING $FTPSERVERIP >/dev/null
echo "end of ping"
运行的时候是这样:
here is ping
end of ping
Password:
-----------------------
我猜测一下 你是不是在判断ftp服务器时否能ping通 如果能ping通你就登录ftp把
1.那你$PING $FTPSERVERIP >/dev/null 这样 后面根本没有判断是否ping通了啊
2.出现Password: 估计你的ftp部分代码没加自动登录自动交互的参数-n和-i 所以是在让你输入密码了
#23
哦 这个知道
我能继续问别的问题不啊?
那个输入密码的提示是ftp那里产生的
result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
这里为什么会提示输入密码呢?以前的就没有。。。。
我能继续问别的问题不啊?
那个输入密码的提示是ftp那里产生的
result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
这里为什么会提示输入密码呢?以前的就没有。。。。
#24
1.$PING $FTPSERVERIP >/dev/null 这个后面怎么判断啊?
2.result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
有-n的参数啊
2.result=`ftp -n $IP $PORT<< EOF
user $USERNAME $USERPWD
by
EOF`
有-n的参数啊
#25
你的命令写错啦
正确的是bye 你写出by了!
正确的是bye 你写出by了!
#26
不过又想了一下 是不是你的
$USERNAME和$USERPW为空?
$USERNAME和$USERPW为空?
#27
这个是我说错了 by也是可以的
#28
之前都用的是by啊 得是Solaris和sude这个地方不一样。。。我改改试试
#29
这个我说错了 然你输入密码 可能是因为你的$USERNAME $USERPWD为空了
#30
#31
哦 发现了 之前解密的密码没解密出来 密码是空的 谢谢了 我在看看
#32
能帮我再看看下面这段代码哪里出错了吗?
我怀疑Solaris下awk用法的问题
$FTPDIR和$filedir都是有值的,这个我前面输出过。
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
这里面就没有得到指定文件下的文件信息。${FILELIST}执行完是空的
我怀疑Solaris下awk用法的问题
$FTPDIR和$filedir都是有值的,这个我前面输出过。
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
这里面就没有得到指定文件下的文件信息。${FILELIST}执行完是空的
#33
你这个脚本 在我这里加一句 就正常执行了 我这个passiv默认是off的 需要输入passiv就可以了
另外你要确认你的每个变量都不为空
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
passiv
cd $FTPDIR/$filedir
ls -l
by
EOF
另外你要确认你的每个变量都不为空
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
passiv
cd $FTPDIR/$filedir
ls -l
by
EOF
#34
又有一行包这个错误。。。
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
PORT=21
fi
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
done
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
PORT=21
fi
ftp -n $IP $PORT << EOF | $AWK '{print $0"/'$filedir'"}' >> ${FILELIST}
user $USERNAME $USERPWD
cd $FTPDIR/$filedir
ls -l
by
EOF
done
#35
哦的神啊 ..
让主席休息一下..
那是因为你的脚本是dos格式的
使用dos2unix转换一下试试
让主席休息一下..
那是因为你的脚本是dos格式的
使用dos2unix转换一下试试
#36
又有一行包这个错误。。。
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
------------------
你是不是在windows下写的脚本? 应该是在do后面多了^M dos下的换行在linux/Unix下经常变成^M
你执行一下
dos2unix 你的脚本
要是不行 你就删掉do那行 在手工添上
`do^M' unexpected
什么意思啊?
那段代码是这样
for filedir in $FILEDIRS
do
if [ "$PORT" = "" ];then -----出错行
------------------
你是不是在windows下写的脚本? 应该是在do后面多了^M dos下的换行在linux/Unix下经常变成^M
你执行一下
dos2unix 你的脚本
要是不行 你就删掉do那行 在手工添上