当前位置: 技术问答>linux和unix
自动压缩脚本
来源: 互联网 发布时间:2016-07-04
本文导语: 目录下存在每天生成的日志文件,文件名格式access_log.1225195200 想压缩前10天的日志文件,请问shell脚本该如何写? 版本:Red Hat Enterprise Linux AS release 4 | #!/dev/sh -x main() { echo "请输入今天的日期:例如...
目录下存在每天生成的日志文件,文件名格式access_log.1225195200
想压缩前10天的日志文件,请问shell脚本该如何写?
版本:Red Hat Enterprise Linux AS release 4
想压缩前10天的日志文件,请问shell脚本该如何写?
版本:Red Hat Enterprise Linux AS release 4
|
#!/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
|
find $SRC_DIR -type f -mtime +2 -name "access_log*[!Z]"|xargs compress -f
在用crontab调用,就可以自动执行了
在用crontab调用,就可以自动执行了
|
牵涉到逝去的秒数和日期的换算,应该不是很难吧。
|
试试楼上的 如果不行 我帮你写一个
|
是要压缩前十天的,还是十天前的?