美文网首页
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