kazmax - Linux で自宅サーバー

nohupで実行したコマンドの出力をnohup.out以外のファイルに保存する

nohup を使ってコマンドを実行した場合、実行中のプロセスの標準出力、標準エラー出力は、nohup.outファイルに追記されていきますが、別のファイルに出力させる事もできます。

Last Update : 2014年03月20日

nohupで実行したコマンドの出力をnohup.out以外のファイルに保存する 目次

  1. nohupで実行したコマンドの出力をnohup.out以外のファイルに保存する
  2. nohupで実行したコマンドの標準出力を、out.log に出力させてみる
  3. nohupで実行したコマンドの標準エラー出力を、error.log に出力させてみる

1. nohupで実行したコマンドの出力をnohup.out以外のファイルに保存する

nohup.out というファイルは、nohup コマンドを使って実行したコマンドの標準出力、標準エラー出力が追記されるファイルです。別のファイルにコマンドの結果を出力したい場合は、単純にnohupで実行するコマンドの標準出力、標準エラー出力の出力先を変更してあげればいいだけです。

2. nohupで実行したコマンドの標準出力を、out.log に出力させてみる

書き方

nohup command > out.log &

使用例

# nohup tail -f /var/log/httpd/access_log > out.log &
[1] 28592
nohup: ignoring input and redirecting stderr to stdout

# ls -l
合計 160
-rw-------. 1 root root  1569  9月 29 16:15 2011 anaconda-ks.cfg
-rw-r--r--. 1 root root 47892  9月 29 16:15 2011 install.log
-rw-r--r--. 1 root root  9249  9月 29 16:14 2011 install.log.syslog
-rw-r--r--. 1 root root 56300  3月 19 08:33 2014 out.log → nohup.out ファイルではなく、out.log がある

3. nohupで実行したコマンドの標準エラー出力を、error.log に出力させてみる

標準エラー出力も別のファイルに保存する場合は以下のようにします。

書き方

nohup command > out.log 2> error.log &

使用例

# nohup tail -f /var/log/httpd/access_log > out.log 2> error.log &
[1] 21792
nohup: ignoring input and redirecting stderr to stdout

# ls -l
合計 160
-rw-------. 1 root root  1569  9月 29 16:15 2011 anaconda-ks.cfg
-rw-r--r--. 1 root root    22  3月 19 09:03 2014 error.log → error.log に標準エラー出力がリダイレクトされる
-rw-r--r--. 1 root root 47892  9月 29 16:15 2011 install.log
-rw-r--r--. 1 root root  9249  9月 29 16:14 2011 install.log.syslog
-rw-r--r--. 1 root root 56300  3月 19 08:33 2014 out.log