先日からscriptコマンドの出力ログにタイムスタンプを付与させる処理について色々とやっていたのだが、ふとnohupでも同様のことができるのではないかと思いやってみた。 で、想定どおり同様の方法でタイムスタンプの付与が行える事が確認できた。

nohup コマンド > >(awk '{print strftime("%F %T : ") $0}{fflush() }'>> PATH)

[root@BS-PUB-CENT7-01 ~]# seq 1 15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@BS-PUB-CENT7-01 ~]# nohup seq 1 15 > >(awk '{print strftime("%F %T : ") $0}{fflush() }'>> test_nohup.log)
nohup: 標準入力を無視し、標準エラー出力を標準出力にリダイレクトします
[root@BS-PUB-CENT7-01 ~]# cat test_nohup.log
2017-05-22 06:04:30 : 1
2017-05-22 06:04:30 : 2
2017-05-22 06:04:30 : 3
2017-05-22 06:04:30 : 4
2017-05-22 06:04:30 : 5
2017-05-22 06:04:30 : 6
2017-05-22 06:04:30 : 7
2017-05-22 06:04:30 : 8
2017-05-22 06:04:30 : 9
2017-05-22 06:04:30 : 10
2017-05-22 06:04:30 : 11
2017-05-22 06:04:30 : 12
2017-05-22 06:04:30 : 13
2017-05-22 06:04:30 : 14
2017-05-22 06:04:30 : 15

使うことがあるのかと言われると微妙だが、まぁとりあえずできるということで。