【问题标题】:How to delete content of a log file from linux terminal?如何从 linux 终端删除日志文件的内容?
【发布时间】:2012-08-31 09:41:27
【问题描述】:

我在服务器上有一个名为writelog 的日志文件,大约是2GB

我想从文件中删除第一行100,000。我可以打开文件并删除这些行,但由于文件大小,我需要永远下载它。

那么,是否可以从 Linux 终端执行此操作?如果是怎么办?

【问题讨论】:

标签: linux terminal


【解决方案1】:

如果你运行的是 Linux 服务器,你可以使用ssh:

ssh username@mydomain.com sed -i '1,100000d' /path/to/logfile

【讨论】:

    【解决方案2】:

    保留最后 1000 行可能会更好:

    mv writelog writelog.bak
    tail -1000 writelog.bak > writelog
    

    您应该为该文件启用logrotate (manual)。然后系统将确保文件不会超出比例。

    【讨论】:

      【解决方案3】:

      如果你想清除整个文件一个快速的方法是

      cat /dev/null > writelog

      另见this thread on unix.com

      【讨论】:

      • @Bala 这取决于你的 shell 设置......更好的方法是:: >| writelog 覆盖 -C/noclobber 选项......在 C shell 中,这是:: >! writelog...:是内置的“空命令”,什么都不做,什么也不输出,总是退出0。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 2017-11-13
      相关资源
      最近更新 更多