log文件压缩, shell获取参数列表并循环处理
ziplog.sh
更编码指定日志前缀(压缩并删除日志文件)
#! /bin/bash
for i in {202401..202407}; do
echo ziping: ${i}
zip www_${i}.log.zip www_${i}*.log && rm www_${i}*.log -f
done升级版:可交互式的输入月份时间段(压缩并删除日志文件)
运行后会提示输入两个表示月份的数字,然后依次执行压缩及文件删除
#! /bin/bash
read -p 'start month(202401):' startMonth
read -p 'end month(202410):' endMonth
echo -e start zip and delete com_{$startMonth-$endMonth} log files:
for i in `seq $startMonth $endMonth` ; do
echo ziping: ${i}
zip www_${i}.log.zip www_${i}*.log && rm www_${i}*.log -f
done只支持一个参数
./ziplog.sh www.xxx.com.log
#! /bin/bash
if [[ "$1" =~ [a-z0-9_\.]+.log$ ]] ; then
echo zip ${1}.zip ${1} && echo '' > ${1}
echo ls -lh --color=auto ${1}*
else
echo use: ./ziplog.sh xxx.log
fi支持多个参数
./ziplog.sh xxx.log xxx.log
#! /bin/bash
echo $@
for i in $@; do
if [[ "$i" =~ [:alnum:]+.log$ ]] ; then
zip ${i}.zip ${i} && echo '' > ${i}
ls -lh --color=auto ${i}*
else
echo use: ./ziplog.sh xxx.log xxxx.log
break
fi
done