我需要在我的nginx docker容器中手动清除缓存并创建一个脚本,我已经创建了一个找到PID的脚本:
docker-pid
#!/bin/sh
exec docker inspect --format '{{ .State.Pid }}' "$@"
另一个最终剧本
clear_cache.sh
#!/bin/sh
PID=/usr/bin/docker-pid proxy_nginx_1
nsenter -m -p -u -n -i -t $PID
rm -rf /etc/nginx/cache/*
exit
我收到此错误:
./clear_cache.sh: line 2: proxy_nginx_1: command not found
如果我将docker-pid
发送到shell,它可以工作....为什么?
答案 0 :(得分:0)
在bash中,如果要将命令的输出保存到变量,则必须使用$(<COMMAND>)
。所以
clear_cache.sh
#!/bin/sh
PID=$(/usr/bin/docker-pid proxy_nginx_1)
nsenter -m -p -u -n -i -t $PID
rm -rf /etc/nginx/cache/*
exit
或
#!/bin/sh
PID=$(docker inspect --format '{{ .State.Pid }}' "$@")
nsenter -m -p -u -n -i -t $PID
rm -rf /etc/nginx/cache/*
exit