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

2025-03-02 22:16:35
推荐回答(2个)
回答1:

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的值我匹配的是根分区,如果你的是其他分区的话需要变动一下.

回答2:

ls |grep -v "*.zip" |xargs gzip