- 締切済み
コマンドの自動実行
手動で次のようなコマンドを入力して行っていたバックアップを「expect」を使って自動で行うようにしたいのですが、うまくいきません。どのようにすればよいか教えてください。 #cd /backup #rm -r * #dump 0uaf - / | restore xf - DUMP: Date of this level 0 dump: Fri Feb 12 12:42:11 2010 DUMP: Dumping /dev/hda1 (/) to standard output DUMP: Label: none ---- 省略 ---- DUMP: Average transfer rate: 1517 kB/s DUMP: DUMP IS DONE set owner/mode for '.'? [yn] y <---'y'を入力 #
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- t-okura
- ベストアンサー率75% (253/335)
expect を使う必要のある部分は set owner/mode for '.'? [yn] y <---'y'を入力 の y を入力するところだけですね。 それだけでしたら restore xof - と restore コマンドに -o フラグをつけると聞いてこなくなる ので expect を使う必要もなくなるのではないでしようか。
- DIooggooID
- ベストアンサー率27% (1730/6405)
> うまくいきません。 うまくいきません、 というのは、 本来どうあるべきが、 何が どうなっているのでしょうか?
補足
返事が遅くなりすみません。 「expect」の使い方を試すために、あらかじめ次のようなスクリプトを書いてみました。 #!/usr/bin/expect -f spawn cp /home/abcd/example /home/abcd/dummy cd /home/abcd spawn rm -i dummy expect "dummy'?" send "y\r" interact この場合は、dummyというファイルを作り、それを削除するという内容ですが、 spawn cp /home/hiro/example /home/hiro/dummy spawn rm -i dummy rm: remove 通常ファイル `dummy'? y と表示して意図通り動きました。これをまねて、 #!/usr/bin/expect -f cd /backup_root spawn rm -r * spawn dump 0uaf - / | restore xf - expect "[yn]" send "y\r" interact とすると spawn rm -r * spawn dump 0uaf - / | restore xf - invalid command name "yn" while executing "yn" invoked from within "expect "[yn]"" (file "./hda_bk.sh" line 5) と表示します。削除はされていませんし、バックアップもしていません。"expect"で検索していろろいろ調べているのですが、どうすればよいか全くわからない状態です。
お礼
返事が大変遅くなりすみません。 -o フラグをつけるとうまくいきました。 ありがとうございました
補足
そのようなフラグがあるのですか?'y'を入力したことと同じことになるのですか?