2017-09-18 8 views
0

私はlogrotateを少しでも使いこなそうとしていますが、現在は同じフォルダにファイルをローテーション、圧縮、名前を変更しています。今、私は同じ場所にファイルをドロップする代わりに、私はそれらを別の場所にドロップさせる必要があります。また、同じフォルダ構造を持つ必要があります。新しいフォルダを作成するよりも、同じフォルダ構造が必要です。すべての圧縮ファイルを追加する必要があります。既存のファイルを上書きしないでください。複数のサブディレクトリにあるファイルを同じフォルダ構造のバックアップ場所に書き込む

olddirはそれらを宛先フォルダにドロップしますが、それを対応するフォルダにドロップするか作成しないかはわかりますまだそこにはありません。

例ソース

VAR /ログ/デバイス1/*。

VAR /ログ/デバイス2/*を記録。

VAR /ログ/デバイス3/*を記録。

例をログに記録

オプト/アーカイブ/デバイス1/

Oへの.gzファイルをドロップ先PT/archvie /デバイス2/

(OPT /アーカイブ/デバイス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 
関連する問題