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 * 执行成功后退出。麻烦大神帮忙补充完或者有更好的方法写一下多谢! 展开
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 * 执行成功后退出。麻烦大神帮忙补充完或者有更好的方法写一下多谢! 展开
2个回答
展开全部
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的值我匹配的是根分区,如果你的是其他分区的话需要变动一下.
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的值我匹配的是根分区,如果你的是其他分区的话需要变动一下.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询