linux 定期压缩日志,shell实现nginx日志定期压缩删除 – 酷喃|coolnull|

说明:

此shell脚本用于定期压缩nginx昨天的日志,删除1周前的日志。

实现:

# vim /var/log/nginx/nginx_log_clean.sh,添加以下内容

#!/bin/bashlogpath=/var/log/nginx#压缩昨天的访问日志 /bin/tar -zcpPf,参数p保留文件原有属性,参数P保留/,不然会出现tar: Removing leading `/’ from member namesgz_tag=$(date"+%Y%m%d"-d"1 days ago")/bin/tar-zcpPf $logpath/$gz_tag.tar.gz $logpath/$gz_tag/bin/rm-rf $logpath/$gz_tag#删除1周前的日志文件del_tag=$(date"+%Y%m%d"-d"1 week ago")/bin/rm-rf $logpath/$del_tag.tar.gz#crontab -e,添加以下内容#每天凌晨4点30,压缩昨天的访问日志,删除1周前的访问日志3004***/bin/bash/var/log/nginx/nginx_log_clean.sh

附录:

1.如何在linux中获取几天前或者几天后的日期

在linux环境下要取得几天前的时期只要使用

# date -d “x days ago” +%Y%m%d

x用数字代替,如果需要几天前的直接写正数,如果要几天后的日期直接写负数即可;

# date -d “x weeks ago” +%Y%m%d

x用数字代替,如果需要几周前的直接写正数,如果要几周后的日期直接写负数即可;

# date -d “x years ago” +%Y%m%d

x用数字代替,如果需要几年前的直接写正数,如果要几年后的日期直接写

2./bin/tar -zcpPf /var/log/nginx/20121130.tar.gz /var/log/nginx/20121130 –remove-files可以实现压缩完成后删除原始文件。

但我在使用时发现,他只会删除文件,不删除文件夹

例如:我的格式是/var/log/nginx/20121130/01/fanzn_access_20121211300101.tar.gz,添加–remove-files,只删除了fanzn_access_20121211300101.tar.gz,但保留了20121130/01/的目录

3.tar: Removing leading `/’ from member names

首先应该明确:*nix系统中,使用tar对文件打包时,一般不建议使用绝对路径。

通常是在两台环境相似的机器上进行同步复制的时候,才有需要使用绝对路径进行打包。使用绝对路径打包时如果不指定相应的参数,tar会产生一句警告信息:”tar: Removing leading `/’ from member names”,并且实际产生的压缩包会将绝对路径转化为相对路径。

比如:

# tar -czvf robin.tar.gz /home/robin

tar: Removing leading `/’ from member names

/home/robin/

/home/robin/file1

/home/robin/file2

/home/robin/file3

root@queen ~ # tar -tzvf robin.tar.gz

drwxr-xr-x robin/root 0 2009-11-10 18:51:31 home/robin/

-rw-r–r– robin/root 0 2009-11-10 18:51:28 home/robin/file1

-rw-r–r– robin/root 0 2009-11-10 18:51:30 home/robin/file2

-rw-r–r– robin/root 0 2009-11-10 18:51:31 home/robin/file3

root@queen ~ #

这样的一个压缩包,如果我们再去解开,就会当前目录(也即此例中的“~”)下再新建出“./home/robin/” 两级目录。对于这样的压缩包,解压方法是使用参数 “-C”指解压的目录为根目录(“/”):tar -xzvf robin.tar.gz -C /

更为可靠的方法是在打包和解开的时候都使用参数 -P:

root@queen ~ # tar -czvPf robin.tar.gz /home/robin/

/home/robin/

/home/robin/file1

/home/robin/file2

/home/robin/file3

root@queen ~ # tar tzvf robin.tar.gz

drwxr-xr-x robin/root 0 2009-11-10 18:51:31 /home/robin/

-rw-r–r– robin/root 0 2009-11-10 18:51:28 /home/robin/file1

-rw-r–r– robin/root 0 2009-11-10 18:51:30 /home/robin/file2

-rw-r–r– robin/root 0 2009-11-10 18:51:31 /home/robin/file3

root@queen ~ # tar -xzvPf robin.tar.gz

/home/robin/

/home/robin/file1

/home/robin/file2

/home/robin/file3

root@queen ~ #

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值