2017-09-18 19 views
0

我試圖用很少經驗的logrotate,目前正在運行我將文件旋轉,壓縮和重命名到同一文件夾中。現在我需要而不是將文件放在同一個地方,我需要讓他們放在另一個位置。他們還需要具有相同的文件夾結構,如果不存在,則需要創建新文件夾。所有的壓縮文件需要被添加,而不是覆蓋現有的文件多個子目錄中的Logrotate文件在同一文件夾結構中備份位置

我在想,olddir將他們放入目標文件夾,但不知道如何讓它放在相應的文件夾或創建它如果它還不在那裏。

實施例源

無功/日誌/ DEVICE1/*。登錄

無功/日誌/設備2/*。登錄

無功/日誌/設備3/*。登錄

實施例目的地下降。廣州文件到

選擇/存檔/ DEVICE1/

Ø PT/archvie /設備2/

(需要創建選擇/存檔/設備3,把旋轉的文件在這裏)

回答

0

最終沒有找到一種方法,用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 
相關問題