自动压缩脚本

ArEoN 2009-08-28 05:02:50
目录下存在每天生成的日志文件,文件名格式access_log.1225195200
想压缩前10天的日志文件,请问shell脚本该如何写?
版本:Red Hat Enterprise Linux AS release 4
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
steptodream 2009-09-25
  • 打赏
  • 举报
回复
试试楼上的 如果不行 我帮你写一个
hanb99 2009-09-25
  • 打赏
  • 举报
回复
错了
find $SRC_DIR -type f -mtime +10 -name "access_log*[!Z]"|xargs compress -f
十天前的
hanb99 2009-09-25
  • 打赏
  • 举报
回复
find $SRC_DIR -type f -mtime +2 -name "access_log*[!Z]"|xargs compress -f
在用crontab调用,就可以自动执行了
iisbsd 2009-09-25
  • 打赏
  • 举报
回复
是要压缩前十天的,还是十天前的?
XyRbj 2009-09-24
  • 打赏
  • 举报
回复

#!/dev/sh -x
main()
{
echo "请输入今天的日期:例如今天是2009年3月21日 只需输入21 以便做前十天的文件压缩:"
read InputTime;


while [ ${InputTime} ]
do
DAY=InputTime-1;

for FileName in `ls -l |grep "access_log" | grep -v "Z" | awk '{print $9}'`
do
ls -l ${FileName} | awk '{print $7}'| read FileDate
echo ${FileName}'123123'
echo ${FileDate}
if [ ${FileDate} -gt ${InputTime}-10 ] && [ ${FileDate} -lt ${InputTime} ]
then
echo '开始压缩'
compress ${FileName}
echo '压缩结束'
sleep 1;
echo '已经压缩好文件'${FileName};
fi
done


done
}

main;

-------------------------------------------------------------------------------
result:

/hntest/Manuel.d$sh -x test.sh
+ main
请输入今天的日期:例如今天是2009年3月21日 只需输入21 以便做前十天的文件压缩:
25
access_log.aaaaaa
24
开始压缩
压缩结束
已经压缩好文件access_log.aaaaaa


你要是执行的话把 #!/dev/sh -x 注释掉 直接 shell名字就行了。别忘了 chmod +x
ArEoN 2009-08-31
  • 打赏
  • 举报
回复
UP
ArEoN 2009-08-29
  • 打赏
  • 举报
回复
刚学,希望高手们指点
wangzhanchuan 2009-08-28
  • 打赏
  • 举报
回复
牵涉到逝去的秒数和日期的换算,应该不是很难吧。

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧