Shell - 根据时间戳重命名日志文件

时间:2012-11-28 14:07:54

标签: shell

我正在尝试使用以下格式重命名日志文件:logfile_access_server1.log根据其创建日期,以便它们具有以下格式:20121128.log 20121127.log etc ...并将它们gzip到另一个文件夹中,使用shell脚本。

我试过这个:

    #! /bin/sh

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

(我是shell脚本中的noob,显然它不起作用)

提前感谢您的帮助

学家

1 个答案:

答案 0 :(得分: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