美文网首页
xargs和sshpass一起使用的坑

xargs和sshpass一起使用的坑

作者: 轩辕啸天 | 来源:发表于2021-01-13 21:51 被阅读0次

    背景

    远程删除docker容器

    问题

    使用的脚本如下:

    sshpass -p ${server_pwd} ssh -o StrictHostKeyChecking=no ${server_ssh} docker ps -a | grep my_project | awk '{ print $1 }' | xargs -r docker rm -f
    
    1. sshpass -p {server_pwd} ssh -o StrictHostKeyChecking=no{server_ssh}进行远程登录。
    2. docker ps -a | grep my_project 查看my_project容器的信息。
    3. awk '{ print $1 }' 显示容器信息的第一栏,即容器id。
    4. xargs -r docker rm -f 将获取到的容器id传递给docker指令,镜像强制关停。

    上面的脚本运行起来会报如下错误:

    xargs: docker: No such file or directory
    

    解决方案

    看到报错信息很疑惑,一顿操作后发现xargs前面还需要远程登录一次,脚本如下:

    containers_id=$(sshpass -p ${server_pwd} ssh ${server_ssh} docker ps -a | grep my_project | awk '{ print $1 }')
    echo $containers_id | sshpass -p ${server_pwd} ssh ${server_ssh} xargs -r docker rm -f
    

    结语

    以上方案如果对你有帮助,就点个赞吧!如果有问题或错误请在评论区评论。

    相关文章

      网友评论

          本文标题:xargs和sshpass一起使用的坑

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