需求:
编写clear_log.sh脚本
执行此脚本后可以清空日志
脚本:
#!/bin/bash
[ "`whoami`" = "root" ] || { ##判断运行此脚本的用户是否是root用户,只有root用户可以运行此脚本
echo "Error:This Script must run as root!!!"
exit
}
LOG=`awk '/./&&!/^#/&&$2~/^\/|^\-/{print $2}' /etc/rsyslog.conf | sed 's/-//g'` ##获取系统日志文件所做动作
for Log_File in $LOG ##for循环Log_File表示变量
do
> $Log_File && { ##循环清空LOG中的文件的内容
echo $Log_File is cleared!
}
done
先在vim编辑器外部调试要做的动作(命令),逐步获取到最终想要的文件
过滤日志配置文件中有" . "并且不以#字符开头的行,
再添加条件第二列是以 " / "或者 " - " 开头的行,打印输出第二列内容
替换全文字符 " - "为空
编写脚本
注意:在写脚本时,要用固定的、一定会出现的内容" . "去做过滤,而这些不定的因素(/var/log)一定不能用