在使用 nohup 运行程序时,通常会把输出重定向到日志文件,例如:
nohup python app.py > app.log 2>&1 &
下面是常见且实用的过滤 nohup 日志内容的方法。
grep 过滤关键字grep "ERROR" app.log
忽略大小写:
grep -i "error" app.log
显示行号:
grep -n "Exception" app.log
grep -v "DEBUG" app.log
grep -E "ERROR|WARN" app.log
tail -f app.log | grep "ERROR"
tail -n 100 app.log
sed -n '/2026-01-21 10:00/,/2026-01-21 11:00/p' app.log
grep "ERROR" app.log > error.log
只保留 ERROR 和 WARN:
grep -E "ERROR|WARN" app.log > important.log
如果程序支持日志级别(如 Python logging):
nohup python app.py --log-level ERROR > app.log 2>&1 &
或者在代码里配置:
logging.basicConfig(level=logging.ERROR)
awk 过滤只显示第 1 列和时间:
awk '{print $1, $2}' app.log
按条件过滤:
awk '/ERROR/ {print}' app.log
logrotate避免 nohup 日志无限增长。
/dev/null(不需要日志)nohup python app.py > /dev/null 2>&1 &
如果你能告诉我:
我可以给你更精确的命令或配置。