2012-11-28 3 views
0

로그 파일의 이름을 생성 날짜에 따라 logfile_access_server1.log 형식으로 변경하여 20121128.log 20121127.log 등 ... 및 쉘 스크립트를 사용하여 다른 폴더에 gzip하십시오.쉘 - 타임 스탬프에 따라 로그 파일 이름 바꾸기

나는이 시도했다 : 당신의 도움을 사전에

#! /bin/sh 

for i in `ls *access*.log` 
do 
mv $i /home/log/$i$(date +%F-%T).gz 
done 

(I 쉘 스크립트에서 멍청한 놈이야 분명히 작동하지 않습니다)

감사를

J.

+1

어디에서 파일을 만들었습니까? – Guru

+0

로그 파일 타임 스탬프에서 가능합니까? – julien

+0

파일 생성 시간이 아니라 파일 수정 시간을 제공합니다 ... – Guru

답변

0

Don't parse ls

for filename in *access*.log; do 
    basename=$(basename "$filename" .log) 
    timestamp=$(date -d "$(stat -c %y "$filename")" +%F-%T) 
    mv "$filename" "/home/log/$basename.$timestamp.log" 
done 

logrotate을 조사 했습니까?