はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 質問掲示板

 crontab の記述意味
日時: 2007/07/27 20:57
名前: ことー

①不明点・障害内容:crontab ファイルの dev/null 2>&1 の意味
②ログの有無   :command > dev/null 2>&1
# crontab ファイルの設定するところで
# 意味が理解できず教えていただければとおもいました。
# crontab の例を見ていると command > dev/null 2>&1
# よく使用しているようですが、これは、コマンドが実行された後
# 標準出力された結果 → どこにも出力できない → 標準エラー出力を標準出力に
# リダイレクトするという意味でありコマンド結果が成功、エラーになっても
# 画面表示せず、ユーザにお知らせをやらないということらしいですが
# 2>&1 の部分にて標準エラー出力を標準出力にリダイレクトすると
# この後に dev/null とあれば、表示されないと言うことはわかるのですが
# 2>&1 の後になぜ標準エラー出力が標準出力にリダイレクトされた後に
# 表示されなくなるのか教えていただけますでしょうか
# 理解できていないのに設定してもなにか動いているのだろうとしか
# わからずやるのは、不安でありますので、よろしくお願いです。
メンテ

Page:  [1]

■ コンテンツ関連情報

 Re: crontab の記述意味 ( No.1 )
日時: 2007/07/27 22:14
名前: 管理者

まずは番号の意味を以下に記します。

標準入力    →「0」
標準出力    →「1」
標準エラー出力 →「2」

「2>&1」で勘違いし易いのは「2 の出力を 1 にリダイレクトする」と思いがちですが、実際の処理は「2 の出力を 1 の出力と同じものにする」と言うことになります。
(「2>1」でない事に注意。「&」があるのでバックグランド処理となります。)

よって「command > dev/null 2>&1」の意味は、
「command」の結果は「dev/null」に出力します。しかし「標準エラー出力」は「標準出力」と同じになりますので、結果的に全ての出力が「dev/null」に渡されます。

実際の処理とは異なりますが「a>b>c」の様にリダイレクトで繋がっている場合は最終的に「c」に渡りますが、「a b>c」となっているので、最終的な出力が「a」に渡される訳です。

説明下手で申し訳ないのですが分かってもらえたでしょうか?
メンテ

Page:  [1]

題名
名前  ("初心者"を含む名前は使用できません)
E-Mail
URL
パスワード 記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント
画像添付 (対応画像:JPEG/GIF/PNG [Max 500KB])

   クッキー保存

■ その他


Copyright(©)2004-2018 First home server construction. All Right Reserved.