问题提出:
删除指定条件的日志,如果日志太多,按条件rm/mv都不能正确执行。使用脚本清理指定日志。
实现思路:
通过for循环,遍历日志。当日志太多时有条件的ls不能查看所有的日志,会报“ksh: /usr/bin/ls: 0403-027 The parameter list is too long.” 错误故先ls全部,再根据条件过滤日志。
方便以后查找备份到盘阵上。
日志目录的命名方式为rtcc加当前日期,如果想当天多次备份,每次备份的目录名不同,脚本加一个参数。
实现脚本:
#!/usr/bin/ksh
SRC_DIR=~/log/rtcc
DEST_DIR=~/cdrbak/log
LOG_DIR=rtcc`date +'%y%m%d'`$1
if [ ! -d $LOG_DIR ]
then
echo "目录不存在,新建目录:";
echo $LOG_DIR;
mkdir $LOG_DIR;
fi
echo `date +'%Y-%m-%d %H:%M:%S'`;
for FILE_NAME in `ls $SRC_DIR/`
do
if [ `ls $SRC_DIR/$FILE_NAME|grep "rtcc/."` ]
then
echo $FILE_NAME;
#echo "mv $SRC_DIR/$FILE_NAME $DEST_DIR/$LOG_DIR;"
mv $SRC_DIR/$FILE_NAME $DEST_DIR/$LOG_DIR;
#sleep 10
fi
done
echo `date +'%Y-%m-%d %H:%M:%S'`