带有Docker命令和变量的inotifywait

时间:2017-06-07 15:38:08

标签: shell ubuntu docker inotifywait

我正在尝试创建一个shell脚本,它将检查一个新文件,然后将cp检查到Docker Container。我到目前为止的代码是......

#!/bin/sh


source="/var/www/html/"
dest="dev_ubuntu:/var/www/html/"

inotifywait -m "/var/www/html" -e create -e moved_to |
while read file; do
    sudo docker cp /var/www/html/$file dev_ubuntu:/var/www/html
done

但是这段代码会出现以下错误:

Setting up watches.
Watches established.
"docker cp" requires exactly 2 argument(s).
See 'docker cp --help'.

Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Copy files/folders between a container and the local filesystem

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你的文件名中是否有空格?使用双引号可避免按字词分隔文件名:

echo $file
sudo docker cp "$file" dev_ubuntu:"$file"

我也回复了文件名,看看发生了什么。