美文网首页
使用su切换用户(2)

使用su切换用户(2)

作者: 飞天大漠 | 来源:发表于2018-11-19 14:10 被阅读0次

    在第一部分中,我们讲了使用expect和spawn结合的方法,来实现切用户执行命令的例子。
    这一部分,我们来看下如何切换命令后调用脚本
    看以下例子:

    export cmd1="sh test.sh\r"
    echo $cmd1

    expect -c "
    spawn su -user1
    expect "Password:"
    send "mypassword!123"
    expect "$ "
    send "$cmd1"

    前面都是一致的,只是send中输入的是执行脚本的命令,建议使用sh来调用脚本,不要忘了最后的\r

    expect "$ "
    send "echo end\r"

    上一部分中就有提过,如果只是单纯的执行了命令之后,很有可能得不到输出

    或者前一个命令压根就没有执行,因此,我采取了多增一条命令的形式,来保证输出

    "

    以上就是调用脚本的举例,调用脚本是在命令繁多的情况下使用的,对于一些简单的情景下我们可以使用一些简单的形式来su用户,举例如下:
    su - impala -c "
    /usr/bin/impala-shell -i 192.168.1.129:21000 << EOF
    invalidate metadata;
    EOF
    "
    此处我使用了su - impala来切换到impala用户,并加了-c参数,使得后面的内容能够以命令行的形式输入.
    -c命令就能够解决这种简单的情景,复杂的命令我们还是要使用expect结合spawn。

    相关文章

      网友评论

          本文标题:使用su切换用户(2)

          本文链接:https://www.haomeiwen.com/subject/huaofqtx.html