2017-05-08 4 views
1

UNIXや他のツールでのログのローテーションについて教えてください。私はこのスクリプトが必要です。nginxの各ログファイルに対してgzipを作成するスクリプトが動作しません

-rw-r--r-- 1 root root 1381791 May 8 10:33 nginx.log.2017.05.07.gz 
-rw-r--r-- 1 root root 17942221 May 8 10:33 nginx.log.2017.05.08 
-rw-r--r-- 1 root root 1381791 May 8 10:33 nginx.log.2017.05.09.gz 
-rw-r--r-- 1 root root 1381791 May 8 10:33 nginx.log.2017.05.10.gz 
-rw-r--r-- 1 root root 1381791 May 8 10:33 nginx.log.2017.05.11.gz 
-rw-r--r-- 1 root root 1381791 May 8 10:33 nginx.log.2017.05.12.gz 

私は、スクリプトを記述しようとしていますとき:

#!/bin/bash 

name="nginx" 
data=$(date +%Y.%m.%d) 
current_nginx=$name.$data 
echo $current_nginx 

find /root/nginx.log* -type f -print0 -and ! -name "*.gz" -and ! -name "$current_nginx" -exec gzip "{}" \; 

find /root/nginx.log* -type f -print0 -and ! -name "*.gz" -and ! -name "nginx.log.2017.05.08" -exec gzip "{}" \; 

すべては私が必要であることを、この結果を持って、okです:私はこれを行うにしようとしています、

このスクリプトの実行後、私は持っています:

-rw-r--r-- 1 root root 1379440 May 8 10:35 nginx.log.2017.05.07.gz 
-rw-r--r-- 1 root root 1379440 May 8 10:35 nginx.log.2017.05.08.gz 
-rw-r--r-- 1 root root 1379440 May 8 10:35 nginx.log.2017.05.09.gz 
-rw-r--r-- 1 root root 1379440 May 8 10:35 nginx.log.2017.05.10.gz 
-rw-r--r-- 1 root root 1379440 May 8 10:35 nginx.log.2017.05.11.gz 
-rw-r--r-- 1 root root 1379440 May 8 10:35 nginx.log.2017.05.12.gz 
スクリプトの

デバッグ:

bash -x test.sh 
+ name=nginx 
++ date +%Y.%m.%d 
+ data=2017.05.08 
+ current_nginx=nginx.2017.05.08 
+ echo nginx.2017.05.08 
nginx.2017.05.08 
+ find /root/nginx.log.2017.05.07.gz /root/nginx.log.2017.05.08.gz /root/nginx.log.2017.05.09.gz /root/nginx.log.2017.05.10.gz /root/nginx.log.2017.05.11.gz /root/nginx.log.2017.05.12.gz /root/nginx.log.2017.05.13.gz /root/nginx.log.2017.05.14.gz -type f -print0 -and '!' -name '*.gz' -and '!' -name nginx.2017.05.08 -exec gzip '{}' ';' 
/root/nginx.log.2017.05.07.gz/root/nginx.log.2017.05.08.gz/root/nginx.log.2017.05.09.gz/root/nginx.log.2017.05.10.gz/root/nginx.log.2017.05.11.gz/root/nginx.log.2017.05.12.gz/root/nginx.log.2017.05.13.gz/root/nginx.log.2017.05.14.gz 

私の条件-and ! -name "$current_nginx"は動作しません。どこに間違いがありますか?助けてください。

答えて

0

current_nginxの.logがありません

+0

素晴らしいです。私はそれを忘れてしまった。ありがとう。 – Piduna

関連する問題