当前位置: 技术问答>linux和unix
100征求 一段bash的详细含义
来源: 互联网 发布时间:2015-11-05
本文导语: function task1() { #完成备份工作 num=0; for line in `du -al /usr/local/apache2/logs/servers |grep "_log"|cut -f 1` do num=`expr $num + 1` if [ $line -gt 3 ] ; then nnum=0 for nline in `du -al /usr/local/apache2/logs/servers | cut -...
function task1()
{
#完成备份工作
num=0;
for line in `du -al /usr/local/apache2/logs/servers |grep "_log"|cut -f 1`
do
num=`expr $num + 1`
if [ $line -gt 3 ] ; then
nnum=0
for nline in `du -al /usr/local/apache2/logs/servers | cut -f 2`
do
nnum=`expr $nnum + 1`
if [ $num -eq $nnum ] ; then
sufix="`date -u +%Y%m%d%H%M%S`"
if cp $nline ${nline}.${sufix} ; then
mv ${nline}.${sufix} /usr/local/apache2/logs/bak/
writemsg task1 备份日志文件${nline}.${sufix}成功!
else
writemsg task1 备份文件${nline}失败!
fi
fi
done
fi
done
#保留最近的三个备份文件
for fline in `ls -Alkt /usr/local/apache2/logs/servers/ | grep "-" | sed 's/ {1,10}/|/g' | cut -d "|" -f 9`
do
#echo $fline
delold $fline
done
}
能不能告诉我下面这亮句话的详细意思啊?
for line in `du -al /usr/local/apache2/logs/servers |grep "_log"|cut -f 1`
for fline in `ls -Alkt /usr/local/apache2/logs/servers/ | grep "-" | sed 's/ {1,10}/|/g' | cut -d "|" -f 9`
{
#完成备份工作
num=0;
for line in `du -al /usr/local/apache2/logs/servers |grep "_log"|cut -f 1`
do
num=`expr $num + 1`
if [ $line -gt 3 ] ; then
nnum=0
for nline in `du -al /usr/local/apache2/logs/servers | cut -f 2`
do
nnum=`expr $nnum + 1`
if [ $num -eq $nnum ] ; then
sufix="`date -u +%Y%m%d%H%M%S`"
if cp $nline ${nline}.${sufix} ; then
mv ${nline}.${sufix} /usr/local/apache2/logs/bak/
writemsg task1 备份日志文件${nline}.${sufix}成功!
else
writemsg task1 备份文件${nline}失败!
fi
fi
done
fi
done
#保留最近的三个备份文件
for fline in `ls -Alkt /usr/local/apache2/logs/servers/ | grep "-" | sed 's/ {1,10}/|/g' | cut -d "|" -f 9`
do
#echo $fline
delold $fline
done
}
能不能告诉我下面这亮句话的详细意思啊?
for line in `du -al /usr/local/apache2/logs/servers |grep "_log"|cut -f 1`
for fline in `ls -Alkt /usr/local/apache2/logs/servers/ | grep "-" | sed 's/ {1,10}/|/g' | cut -d "|" -f 9`
|
这个家伙故弄玄虚
ls -Alkt
其实ls -l就可以了
grep "-"的意思是列出其中的普通文件
sed的意思是把里面的空格压缩之后换成|, 用 tr -s 更方便
cut的意思是取出其中的第九个字段,也就是文件名
纯属浪费
for f in /usr/local/apache2/logs/servers/*
do
if [ -f $f ]; then
....
fi
done
ls -Alkt
其实ls -l就可以了
grep "-"的意思是列出其中的普通文件
sed的意思是把里面的空格压缩之后换成|, 用 tr -s 更方便
cut的意思是取出其中的第九个字段,也就是文件名
纯属浪费
for f in /usr/local/apache2/logs/servers/*
do
if [ -f $f ]; then
....
fi
done
|
du -al是总结每个的磁盘用量,目录则取总用量。
cut -f 是从选择的文件中打印选择的行到标准输出.
那么第一话的意思应该明白了吧!
第二句不是很明白
cut -f 是从选择的文件中打印选择的行到标准输出.
那么第一话的意思应该明白了吧!
第二句不是很明白
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。