【问题标题】:Logrotate files in multiple sub directories to backup location in same folder structure将多个子目录中的文件记录到同一文件夹结构中的备份位置
【发布时间】:2017-09-18 02:58:00
【问题描述】:

我尝试使用经验很少的 logrotate,目前我正在将文件旋转、压缩和重命名到同一个文件夹中。现在我不需要将文件放在同一个地方,而是需要将它们放在另一个位置。它们还需要具有相同的文件夹结构,如果不存在则需要创建新文件夹。所有压缩文件都需要添加,不要覆盖现有文件

我认为 olddir 会将它们放入目标文件夹,但不确定如何将其放入相应的文件夹中,或者如果它不存在则创建它。

示例来源

var/log/device1/*.log

var/log/device2/*.log

var/log/device3/*.log

将 .gz 文件放入的示例目标

opt/archive/device1/

选择/archvie/device2/

(需要创建 opt/archive/device3 并将旋转文件放在这里)

【问题讨论】:

    标签: logrotate


    【解决方案1】:

    最终没有找到使用 logrotate 移动的方法,但想出了做同样事情的脚本。非常简单,不适用于 1 级以上的子文件夹。

    #!/bin/bash
    
    source="/opt/log/host"
    destination="/opt/archive/"
    
    for i in $(find $source -maxdepth 2 -type f -name "*.gz")
    do
    
    #removing /opt/log/host from string
    dd="$( echo "$i" | sed -e 's#^/opt/log/host/##' )"
    
    #removing everything after the first /
    ff=$( echo "$dd" | cut -f1 -d"/" )
    
    #setting the correct destination string
    ee=$destination$dd
    
    #create new folders if they do not exist
    mkdir -p -- "$destination$ff"
    
    #move files
    mv $i $ee
    
    done
    

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 2018-08-29
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      相关资源
      最近更新 更多