shell脚本--压缩一个文件里里面的所有log文件

如果df-h的最大值大于80%我就要压缩最早的一个文件夹里面的内容if[$dfh>80];then--如果df-h最大值大于80%folder=ll-t|tail-1|h... 如果df-h的最大值大于80% 我就要压缩最早的一个文件夹里面的内容
if[$dfh>80];then --如果df-h最大值大于80%
folder=ll -t | tail -1 |head -1 | awk -F ' ' '{print($9)}' --找出最早的一个文件夹

cd $folder --进入这个文件夹
gzip * --将这个文件夹里面的内容gzip*
if [ $? -eq 0 ];then --假如执行成功
--返回
else --假如执行失败,如果该文件已经打包继续循环找出下一个最新的tail -2
filename=ll -t | tail -2 | head -1 | awk -F ' ' '{print($9)}'

--不知道这个如何循环了。

我每次执行这个脚本的时候只压缩最早的一个文件夹里面的所有内容如果执行gizp*失败或者这个文件夹已经压缩循环执行下一个,直到gzip * 执行成功后退出。麻烦大神帮忙补充完或者有更好的方法写一下多谢!
展开
 我来答
whitheyNKU
2015-02-25 · TA获得超过134个赞
知道小有建树答主
回答量:88
采纳率:100%
帮助的人:67.3万
展开全部
logpath="ur_log_dir_path"
cd $logpath
while [ $(df -Th |awk -F'[% ]' '$NF~/\/$/{print $(NF-2)}') -gt 80 ];do
let num++
dir=$(ls -lt|tail -$num|head -1|awk '{print $NF}')
cd $dir
for file in $(ls);do
[[ ! "$file" =~ '.*\.zip' ]] && gzip --best $file && sleep 1
done
done
unset num
会一直循环到磁盘空间小于80%,然后退出.
dfh的值我匹配的是根分区,如果你的是其他分区的话需要变动一下.
良玉小帝
2015-02-17 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9451

向TA提问 私信TA
展开全部
ls |grep -v "*.zip" |xargs gzip
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式