NASのバックアップのためにshell scriptにてrsyncコマンドによる自動バックアップを考えています。
自動化のために作成したスクリプトは次のような感じです。
Bash
1rsync -a --delete /usr/DATA/ /usr/backup/DATA_wk1/ --log-file=/usr/log/`date +"%Y%m%d"`.log --log-file-format="%o %f"
記述が長いため、次のように変数化してみました。
Bash
1option='-a --delete' 2currentpath='/usr' 3targetpath='/usr/backup' 4logpath='--log-file=/usr/log' 5logfile=`date +"%Y%m%d.log"` 6logformat='--log-file-format="%o %f"' 7rsync $option $currentpath/DATA $targetpath/DATA_wk1/ $logpath/$logfile $logformat
このスクリプトを実行したところ次のエラーが出ました。
Unexpected remote arg: /usr/backup/DATA_wk1/
いろいろ試してみたところ、--log-file-format
に渡すフォーマット文字列%o %f
がうまく処理できないようです。
下記のように記述した場合は問題なく動作します。
Bash
1option='-a --delete' 2currentpath='/usr' 3targetpath='/usr/backup' 4logpath='--log-file=/usr/log' 5logfile=`date +"%Y%m%d.log"` 6rsync $option $currentpath/DATA $targetpath/DATA_wk1/ $logpath/$logfile --log-file-format="%o %f"
変数を用いて文字列引数を渡すにはどのようにすれば良いのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/17 05:36 編集