【问题标题】:I need a shell-script to move the log's generated by server我需要一个 shell 脚本来移动服务器生成的日志
【发布时间】:2023-03-03 03:18:01
【问题描述】:

我每周都有一个要求,我的服务器正在生成日志,并在某些日子将它们存储在磁盘/位置中,它会生成大型日志,因此我的磁盘已满,所以我需要移动所有日志文件 (除了将前一天的日志留在同一位置) 并将剩余的日志移至新位置。

我知道磁盘在什么特定时间被日志填满,所以我需要一个脚本在磁盘几乎满时执行当磁盘达到其存储容量的 80% 或 90% 时。 strong> 因此脚本必须自动执行并将日志移动到新位置

【问题讨论】:

  • logrotate(8) - Linux man page。也就是说,您的问题在技术上是题外话。
  • Idk 在磁盘被日志填满的特定时间,所以我需要一个脚本在磁盘几乎满时执行**当磁盘达到其存储容量的 80% 时** .因此脚本必须自动执行并将日志移动到新位置。
  • "It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large." 设置日志的最大大小或根据剩余的可用空间量计算允许的大小。

标签: bash shell automation


【解决方案1】:

如果达到(b)容量阈值,则以下内容可以将超过 1 天的日志移动到新位置:

capacity_threshold=90  # limit set at 90%
current_usage=$(df -k /path/to/logs | tail -1 | tr -s ' ' | cut -d ' ' -f5,5 | cut -d % -f1,1)       
[[ $current_usage -ge $capacity_threshold ]] && {
   find /path/to/logs -name "*.log" -mtime +1 -exec mv {} /new/path/. \;
}

【讨论】:

  • 你能帮我解释一下磁盘何时几乎达到其最大存储容量的逻辑吗?
  • @Praveen 查看更新的答案,现在文件移动只有在您的日志文件系统使用 90% 或更多时才会发生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多