リモートホストに画像だけコピーしたい
お世話になります、シェルスクリプト初心者です。
当方では、sshの鍵接続でリモートホストに接続し
scp若しくはsshで画像だけのコピーをしたいと考えています。
接続するユーザ:
user(ssh鍵作成済で、鍵だけでsshに入れるようにした)
ローカルホスト:192.168.11.101
画像パス:/home/user/img/(サブディレクトリがたくさんある)/*.jpg|.gif|.png
リモートホスト:192.168.11.200
画像パス:/home/user/img/(サブディレクトリがたくさんある)/*.jpg|.gif|.png
シェル:
------
#!/bin/sh
for FILE in `find /home/user/img/ -regex ".*\.\(jpg\|png\|gif\|JPG\|GIF\|PNG\)"`;
# do /usr/bin/scp -P 22 -i "/home/user/.ssh/id_rsa" -r $FILE user@192.168.11.200:$FILE;
# do /usr/bin/rsync -av -e "ssh -i /home/user/.ssh/id_rsa" $FILE user@192.168.11.200:$FILE;
done
------
ここで問題が起きました。
for文で画像パスであるファイルパスを探し
そのファイルパスをscpまたはrsyncでファイルをコピーするんですが、
リモートホストにローカルホストとおなじディレクトリがない場合、
以下のエラーメッセージが返ってきてしまいます。
------
building file list ... done
rsync: push_dir#3 "/home/user/img/(サブディレクトリ)" failed: No such file or directory (2)
rsync error: errors selecting input/output files, dirs (code 3) at main.c(545) [receiver=2.6.8]
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(463) [sender=2.6.8]
------
scpやrsyncで「ディレクトリがない場合、作成」をしたいのですが、
それはscpやrsyncのオプションで叶うものなのでしょうか。
または、他の方法で叶うものなのでしょうか。
ご教授をお願いいたします。