shell功能

日志切割:

function rotate() {
logs_path=$1
 
echo Rotating Log: $1
cp ${logs_path} ${logs_path}.$(date -d "yesterday" +"%Y%m%d")
> ${logs_path}
    rm -f ${logs_path}.$(date -d "7 days ago" +"%Y%m%d")
}
 
for i in $*
do
        rotate $i
done

 将错误输出重定向到文件并添加时间等注释,并且不影响正常命令的执行(相当于把错误赋值给变量)

for i in 11.py xiao/22.py
do
  a=`touch $i 2>&1`
  [ $? -eq 0 ] || echo "`date  +%F__%T` : $a" >err.log
done

 脚本目的:在全集中找子集的补集,适用于本应该全集这么多,而实际上缺少的部分。两个文件做对比,有个文件少了哪些行的内容。

#cat hostbuji.sh
#!/bin/bash
quanji=$1
ziji=$2
[ $# -ne 2 ] && echo -e "usage: sh $0 quanji ziji
脚本目的:在全集中找子集的补集,适用于本应该全集这么多,而实际上缺少的部分。" && exit 1
for i in `cat ${quanji}`
do
  flag=0
  for j in `cat ${ziji}`
  do
  if [ ! "$i" == "$j" ]
  then
    continue
  else
    flag=1
  fi
  done
  [ "$flag" == 0 ] && echo $i
done

原文地址:https://www.cnblogs.com/machangwei-8/p/8904035.html