2017-06-07 25 views
1

新しいファイルを確認してからDocker Containerにcpするシェルスクリプトを作成しようとしています。コード私は今のところです...Dockerコマンドと変数を使用したinotifywait

#!/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 

何をしているのですか?

答えて

0

ファイル名にスペースがありますか?言葉でファイル名を分離避けるために、二重引用符を使用します。

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

私は何が起こっているかを確認するために、ファイル名をもエコーしました。

+0

ファイルの名前にスペースがあったため、スペースのために「_」を追加しました。 lstat/var/www/html/varに次のエラーが表示されるようになりました: 'sudo docker cp"/var/www/html/$ file "dev_ubuntu:/ var/www/html"ディレクトリ ' – ThomasC

+0

これでドッカーのボリュームを避けたいのですが、そうですか?ボリュームはあなたのユースケースを対象としているので、 – Robert

+0

私の回答を編集しました – Robert

関連する問題