情景linux–在脚本中如何优雅地退出telnet

情景linux–在脚本中如何优雅地退出telnet

情景

telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式会话模式。虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23)

其执行结果有两种:

  • 端口未打开
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused

此时,命令已退出。

  • 端口已打开
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.

此时命令未退出。
根据提示Escape character is '^]'.可知退出字符为’^]’(CTRL+])。此时输入其它字符不能使其退出,CTRL+C都不行。输入CTRL+]后会自动执行,进入命令模式:

^]
telnet>

此时再运行quit才会真正退出。

telnet> quit
Connection closed.

其中,Escape character可以自定义,使用参数-e

$ telnet -e p 101.199.97.65 62715
Telnet escape character is 'p'.
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is 'p'.
p
telnet> quit
Connection closed.

即便如此,退出telnet还是麻烦。那么,更进一步,如果出现在脚本中应该如何(优雅地)退出telnet呢?

方案

其实可以这样:

  • 输出结果后立即退出
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused
  • 输出结果后延迟退出
    sleep 2使得telnet输出结果后,停留2秒后退出命令模式。
$ sleep 2 | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.

使用这种方式可以将标准输出和标准错误重定向到文件中,通过分析文件的内容来判断端口打开状态。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 在Linux脚本使用root权限进行登录,可以通过以下几种方法实现: 1. 使用sudo命令:在脚本使用sudo命令并指定需要以root权限执行的命令。在sudoers文件,可以设置允许脚本执行者以无需密码的方式使用sudo命令登录root权限。 2. 使用su命令:在脚本使用su命令来切换到root用户。可以使用echo命令结合管道来传递root用户的密码,实现自动化登录root权限。 3. 使用expect工具:expect是一个用于自动化交互式进程的工具,可以在脚本使用expect脚本实现登录root权限。通过编写expect脚本,可以模拟用户与登录root权限的交互行为,实现自动化登录。 需要注意的是,使用root权限要谨慎,并且应该尽量避免在脚本直接使用root权限执行敏感操作。应该将脚本尽量限制在普通用户权限下运行,并在需要root权限的具体操作上使用sudo或su命令。这样可以增加系统的安全性,并避免误操作导致的风险。 总之,在脚本登录root权限有多种方法可选择,具体要根据实际需求和安全考虑进行选择和使用。 ### 回答2: 在Linux,可以使用以下方法在脚本登录root权限: 1. 使用sudo命令:sudo命令用于临时提升当前用户的权限,允许执行root用户权限的命令。在脚本,可以使用sudo命令来执行需要root权限的操作。例如,可以在脚本使用`sudo command`来执行需要root权限的命令。 2. 使用su命令:su命令用于切换用户身份。在脚本,可以使用su命令切换到root用户,并执行需要root权限的操作。例如,可以在脚本使用`su -c "command"`来切换到root用户并执行命令。 3. 使用特殊权限的脚本:可以为脚本设置特殊权限,使其在执行时自动以root权限运行。可以使用chmod命令将脚本设置为root所有,并设置特殊权限,如SetUID或SetGID。这样,在执行脚本时,它将自动以root权限运行。 需要注意的是,为了安全起见,应该谨慎考虑在脚本使用root权限。应尽量避免使用root权限执行脚本,而是使用更为安全的方式,如限制脚本执行的特定命令、设置sudo权限等。 ### 回答3: 在Linux脚本获取root权限有多种方法。以下是一些常用的方法: 1. 使用sudo命令:sudo命令允许普通用户以root身份执行特权命令,同时可以避免直接使用root账户登录。在脚本,可以使用sudo命令前置需要root权限的命令。例如: ``` sudo command ``` 2. 在脚本切换用户:root是Linux系统的超级用户,可以切换到root用户来执行特权操作。在脚本,可以使用su命令切换到root用户。例如: ``` su -c "command" ``` 3. 设置脚本拥有root权限:可以修改脚本的所有者为root,并设置其Set-UID和Set-GID权限。这样脚本在执行时将具有root权限。例如: ``` chown root:root script.sh chmod 4755 script.sh ``` 需要注意的是,为了系统安全,应该谨慎使用root权限,并且仅在需要时才获取。在脚本使用root权限时,应确保脚本的命令不会对系统造成损害,并且避免使用危险的命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

signjing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值