ラベル sh/bash の投稿を表示しています。 すべての投稿を表示
ラベル sh/bash の投稿を表示しています。 すべての投稿を表示

2011年11月11日金曜日

Shell から rsync

しょうもないことで嵌まったこと。

rsync を実行してバックアップする Shell ファイルを作成中のこと。exlude で除外ファイルを指定したかったわけだが・・・
CMD="rsync -avz"
echo CMD "--exclude='*.pid'" src1 dest1
echo CMD"--exclude='*.lock" src2 dest2
上記の様に普段は、まずコマンドの前に echo をつけてコマンド、引数の確認後、出力されたコマンドをコピペして実行し動作確認を取った後 echo を外して Shell の確認って手順で作成することが多い。
今回、コピペでやると --exclude で指定しているファイルが除外されるが、Shell ファイルを実行すると除外されなかった。

原因は、--exclude オプションがクウォートで囲まれてコマンドに渡されているためで、当然なわけだが、echo で出力されると文字列が展開されてクウォートが表示されない。

実際は他にもオプションや変数を渡してたりして、気づくのに結構かかってしまった。