今天某個項目的數據有些問題,需要查詢日誌看看具體的情況 結果在執行 cat ***.log |grep "關鍵字" 命令後包如下錯誤: grep: memory exhausted 思路1: 既然提示 記憶體問題,是不是日誌文件太大了, 用 du -sh * 命令查看 後文件也就 300M 思路2: ...
今天某個項目的數據有些問題,需要查詢日誌看看具體的情況
結果在執行
cat ***.log |grep "關鍵字" 命令後包如下錯誤:
grep: memory exhausted
思路1: 既然提示 記憶體問題,是不是日誌文件太大了, 用 du -sh * 命令查看 後文件也就 300M
思路2: 是不是系統記憶體不足, free -m 查看記憶體後 也正常還有好幾個G
最後不經意 在 執行命令: ll 後 發現一個現象
文件只有,1011M 但是 ll列表文件詳細信息顯示的 卻很大,就是這個導致 了 grep: memory exhausted
那怎麼解決呢?
在知乎找到瞭解決的方案:
原因
這種現象的原因是由於在 nohup 重定向輸出啟動時採用了 ">" 清空重定向的方式,而不是 ">>" 追加重定向的方式
通過修改啟動文件的 nohup 重定向輸出方式為追加
解決:
# nohup ./****.sh >> nohup.out 2>&1 &
# echo "" > nohup.out
修改啟動配置文件後,重啟命令 再次 使用ll 查看文件大小正常, cat命令也可以使用了
原文:
https://zhuanlan.zhihu.com/p/396797089