- - PR -
シェルスクリプトでログをファイルに出力
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2006-10-25 16:52
現在サーバのバックアップのためのシェルスクリプトを作成しています。作成したシェルスクリプトの中で、コマンドの標準出力と標準エラーをファイルに出力したいのですが、一部うまくいきません。以下に作成したシェルスクリプトを示します。
---------------------------シェルスクリプトlog.sh------------------------------ #!/bin/bash cd /tmp/backup mkdir day.`date +%Y%m%d` ls chmod 777 day.`date +%Y%m%d` # tarコマンドでファイル実体をバックアップ。tarコマンドのログをlog.txtに記述 bash tar zcfP /tmp/backup/day.`date +%Y%m%d`/tar.`date +%Y%m%d` /xxx/yyy/AAA_Storage /xxx/yyy/BBB_Storage >> tmp/backup/log.txt 2>&1 # pg_dumpallコマンドでメタデータをバックアップ。ログをlog.txtに記述 su postgres -c "bash /xxx/aaa/bbb/ccc/pg_dumpall > /tmp/backup/day.`date +%Y%m%d`/dump.`date +%Y%m%d` >> tmp/backup/log.txt 2>&1" /xxx/aaa/bbb/ccc/log.sh >> /tmp/backup/log.txt 2>&1 #シェルスクリプトlog.shの ログをlog.txtファイルに出力する --------------------------------------------------------------------------- ◆ログを出すために◆ @tarコマンドではオプションのPオプションをはずしました。そうするとコンソールに は"tar:Removing leading '/'from member names"というエラーがでます。 Apg_dumpallコマンドの設定しているPATHを正しくないものに置き換えました。そうす ると"pg_dumpall: pg_dumpall:そのようなファイルやディレクトリはありません"と いうエラーがでます。 これらのエラーメッセージがlog.txtファイルに出力されてほしいのですが、シェルスクリプトを実行すると、@はそのままコンソール画面に出てしまいます。そしてlog.txtファイルには、"bash tar"のみを実行したときのエラー"tar: /bin/tar: cannot execute binary file"というエラーがlog.txt に出てしまいます。Aはコンソール画面にもlog.txtファイルにもでません。 また、シェルスクリプトlog.shのログも何も見受けられずどのように判別したらよいのか分かりません。 リダイレクトの書式に自信がありません。ご教授をお願いできますでしょうか。 [ メッセージ編集済み 編集者: Penguin 編集日時 2006-10-25 16:59 ] |
|
投稿日時: 2006-10-25 17:30
こんな事を言うのも何ですが…
先日も似た様な質問されてましたよね? シェルスクリプトの本をご自分で買って、 手元に置いてそれを見ながら書いた方が良いと思いますよ。 「百聞は一見にしかず」 です。 |
|
投稿日時: 2006-10-26 00:30
こんばんゎ
>> logfile 2>&1 を 2>&1 >> logfile にしてみたら? 「百聞は一見にしかず」 はもとより、経験に勝る知識は無いと思います |
1
