salt收集windows服务器日志时间
定义收集时间区间: time.ps1
$a = get-date $b = $a.adddays(-) $c = $b.tostring('yyyy-MM-dd') $d = get-date -format 'yyyy-MM-dd' $x = 'T00:00:00' $y = 'T23:59:00' $A = $c+$x $B = $d+$y } | Format-List
使用salt分发time.ps1文件到各Windows sever中:copydir.sls
copy_dir: file.managed: - name: C:\opstools\time.ps1 - source: salt://zhouz/time.ps1 - makedirs: 'True' cmd.run: - name: powershell.exe C:\opstools\time.ps1
使用脚本收集日志并分析
#!/bin/bash # fdir="/tmp/first" sdir="/tmp/second" tdir="/tmp/third" fodir="/tmp/forth" ColLogs() { echo "收集原始系统日志:" [ -d $fdir ] && rm -rf $fdir && mkdir $fdir || mkdir $fdir #weblist=`salt "主机名" test.ping | grep -v "True" | awk -F ':' '{print $1}'` #list="`salt "主机名" test.ping | grep -v "True" | awk -F ':' '{print $1}' | xargs echo`" list="`salt "主机名" test.ping | grep -v "True" | xargs echo | sed "s/://g"`" for i in $list; do salt "$i" state.sls zhouz.copydir &> $fdir/$i echo "$i is ok" done } TreatLogsA() { echo "整理初始化日志(为对比天、小时、分钟、秒钟等字符串是否一致做准备):" [ -d $tdir ] && rm -rf $tdir && mkdir $tdir || mkdir $tdir cd $fdir for i in $(ls BX*); do grep -A ReplacementStrings $i | xargs echo >$tdir/$i cd $tdir sed -i 's/--/&\n/g' $i sed -i 's/--\|{\|}\|[[:space:]]//g' $i #sed -i 's/,/ /g' $i sed -i 's/,/\./g' $i sed -i 's/Z//g' $i #sed -i 's/\./:/g' $i sed -i 's/ReplacementStrings://g' $i #sed -i 's/T/:/g' $i #sed -i 's/2019-07-[0-9][0-9]T//g' $i #sed -i 's/\.[0-9]\{4,10\}Z//g' $i echo "$i is ok" cd $fdir done } TreatLogsB() { echo "对收集的初始系统日志进行整理(为对比 毫秒差值 做准备):" [ -d $sdir ] && rm -rf $sdir && mkdir $sdir || mkdir $sdir cd $fdir for i in $(ls BX*); do grep -A "ReplacementStrings" $i | xargs echo >$sdir/$i cd $sdir sed -i 's/--/&\n/g' $i sed -i 's/--\|{\|}\|[[:space:]]\|Z//g' $i sed -i 's/,/:/g' $i sed -i 's/\,\ 1//g' $i # sed -i 's/\./:/g' $i 此处将 . 去掉 sed -i 's/\.//g' $i sed -i 's/ReplacementStrings://g' $i sed -i 's/T/:/g' $i # sed -i 's/2019-07-[0-9][0-9]T//g' $i echo "$i is ok" cd $fdir done } TreatLogsC() { echo "对收集的初始系统日志进行整理(为对比 秒差值 做准备):" [ -d $fodir ] && rm -rf $fodir && mkdir $fodir || mkdir $fodir cd $fdir for i in $(ls BX*); do grep -A ReplacementStrings $i | xargs echo >$fodir/$i cd $fodir sed -i 's/--/&\n/g' $i sed -i 's/--\|{\|}\|[[:space:]]\|Z//g' $i sed -i 's/,/:/g' $i sed -i 's/\./:/g' $i #sed -i 's/\.//g' $i sed -i 's/ReplacementStrings://g' $i sed -i 's/T/:/g' $i #sed -i 's/2019-07-[0-9][0-9]T//g' $i echo "$i is ok" cd $fdir done } LogsDay() { echo "对比两列数据中秒钟是否一致:" cd $fodir mkdir $fodir/dtime &>/dev/null for i in $(ls BX*); do #cat $i | awk -F ":" '{print $1,":"$2,":"$3,($4-$9)}' >$fodir/dtime/$i cat $i | awk -F ":" '{print ($4-$9)}' >$fodir/dtime/$i cd $fodir/dtime #count=`grep -E -v "0|1" $i | wc -l` count=`grep -E -v " $i | wc -l` ]; then echo "$i have problem" grep -v ' $i else echo "$i is ok" fi cd $fodir done } DisTimePeriodA() { echo "对比天、小时、分钟、秒钟等字符串是否一致(批量)" cd $tdir mkdir $tdir/dtime &>/dev/null read_file='BX*' for file in ${read_file}; do echo "$file" ;i<=$(cat $file| wc -l);i++)); do #first="$(sed -n ${i}p $file| awk '{print $1}')" first="$(sed -n ${i}p $file| awk -F "." '{print $1}')" #second="$(sed -n ${i}p $file | awk '{print $2}')" second="$(sed -n ${i}p $file | awk -F "." '{print $3}')" #echo "${first}" #echo "${second}" if [ "${first}" == "${second}" ]; then echo "${first} = ${second}" &>/dev/null else A="$(grep $first $file)" #B="$(grep $second $file)" #echo " ${first} != ${second}" echo " ${A}" fi done echo " " done } DisTimePeriodB() { echo "对比天、小时、分钟、秒钟等字符串是否一致(只查询有问题的主机)" cd $tdir mkdir $tdir/dtime &>/dev/null #read_file='BX*' #for file in ${read_file}; do read -p "请输入有问题的主机名: " file echo "$file" >>$tdir/dtime/$file ;i<=$(cat $file| wc -l);i++)); do #first="$(sed -n ${i}p $file| awk '{print $1}')" first="$(sed -n ${i}p $file| awk -F "." '{print $1}')" #second="$(sed -n ${i}p $file | awk '{print $2}')" second="$(sed -n ${i}p $file | awk -F "." '{print $3}')" if [ "${first}" == "${second}" ]; then echo "${first} = ${second}" &>/dev/null else #echo " ${first} != ${second}" >>$tdir/dtime/$file A="$(grep $first $file)" echo " ${A}" fi # echo " " >>$tdir/dtime/$file done #done } LogsMillisecond() { echo "对比两列数据中 毫秒 是否一致:" cd $sdir mkdir $sdir/mtime &>/dev/null for i in $(ls BX*); do cat $i | awk -F ":" '{print $1,":"$2,":"$3,($4-$8)}' | sort -t $' ' -k4 -n >$sdir/mtime/$i cd $sdir/mtime echo "==================================================" echo "$i 两列毫秒为正数的数值最高的10个" cat $i |tail #echo "==================================================" #echo "$i 两列毫秒为正数的数值最小的10个" #cat $i |grep -v echo "==================================================" echo "$i 两列毫秒为负数的数值最大的10个" cat $i |grep '\-[0-9][0-9][0-9][0-9]' | head #echo "==================================================" #echo "$i 两列毫秒为负数的数值最小的10个" #cat $i |grep '\-[0-9][0-9][0-9][0-9]' | tail cd $sdir done } #ColLogs a="ColLogs" b="TreatLogsA" c="TreatLogsB" d="TreatLogsC" e="LogsDay" f="DisTimePeriodA" g="DisTimePeriodB" h="LogsMillisecond" echo "请选择你想要执行的功能: a: ColLog 收集windows server初始日志; b: TreatLogsA 整理初始化日志(为对比天、小时、分钟、秒钟等字符串是否一致做准备); c: TreatLogsB 整理初始化日志(为对比 毫秒 差值做准备); d: TreatLogsC 整理初始化日志(为对比 秒 差值做准备); e: LogsDay 对比两列数据中<< 秒 >>是否一致; f: DisTimePeriodA 对比天、小时、分钟、秒钟等字符串是否一致(批量显示); g: DisTimePeriodB 对比天、小时、分钟、秒钟等字符串是否一致(只查询有问题的主机); h: LogsMillisecond 对比两列数据中<< 毫秒 >>是否一致." read -n3 -p "请输入:" opt case $opt in a) $a ;; b) $b ;; c) $c ;; d) $d ;; e) $e ;; f) $f ;; g) $g ;; h) $h ;; *) echo "No opt" exit esac
待补充
salt收集windows服务器日志时间的更多相关文章
- ELK收集windows服务器日志笔记
一.软件版本 1.jdk-8u211-linux-x64.rpm 2.elasticsearch-6.8.1.rpm 3.logstash-6.8.1.rpm 4.kibana-6.8.1-x86_6 ...
- 案例:使用logstash收集游戏服务器日志,输出到kafka消息队列中,然后存入ES
gamelogs2kafka.conf input { file { codec => plain { charset => "UTF-8" } path => ...
- 如何查看Windows服务器运行了多长时间
前言:有时候管理.维护Windows服务器需要定期重启服务器(为什么需要重启,你懂的),但是这个"定期"有时候会受很多因素影响,例如某台服务器忘了重启:某台服务器那个时间段业务繁忙 ...
- Syslog和Windows事件日志收集
Syslog和Windows事件日志收集 EventLog Analyzer从分布式Windows设备收集事件日志,或从分布式Linux和UNIX设备.交换机和路由器(Cisco)收集syslog.事 ...
- elk收集windows日志
参考网站:https://www.secpulse.com/archives/55636.html https://blog.csdn.net/qq_38094271/article/details/ ...
- Tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中
Tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中 在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail ...
- 关于windows服务器的Security安全类日志的导出
对于windows服务器,日志的分类会有很多,可以通过wevtutil el 列出 有时可能会对Security安全类日志进行审计,这里简单讲一下安全类日志的导出方法 1.直接在cmd中执行 wevt ...
- 12G服务器在BIOS中收集阵列卡日志(TTY日志)的方法
如果系统进不去.请参考如下方法收集日志. 请准备个U 盘,容量在8G以下(含8G),否则会识别不到. 图片参考,以描述为准 F2 enter BIOS option--> Enter the ...
- ELK收集Nginx自定义日志格式输出
1.ELK收集日志的有两种常用的方式: 1.1:不修改源日志格式,简单的说就是在logstash中转通过 grok方式进行过滤处理,将原始无规则的日志转换为规则日志(Logstash自定义日志格式) ...
随机推荐
- kubernetes之download api
download api作用: 可以通过环境变量或Volume挂载将pod信息注入到容器内部 apiVersion: apps/v1 kind: Deployment metadata: name: ...
- 多容器共享volume
目标: pod中 包含两个容器: tomcat和busybox, 设置volume:app-logs, 用于tomcat向其中写日志, busybox读日志文件 apiVersion: apps/v1 ...
- Girls Like You--Maroon 5
Girls Like You Spent 24 hours, I need more hours with you (24小时过去 还想和你 相处更久) You spent the weekend g ...
- kotlin命令行交互式终端
之前在http://www.cnblogs.com/webor2006/p/7532982.htmlKotlin的环境搭建篇提到过在开发Kotlin可以用最原始的挖掘机式的命令行去编译运行,这里学习一 ...
- python改成了python3的版本,那么这时候yum就出问题了
既然把默认python改成了python3的版本,那么这时候yum就出问题了,因为yum貌似不支持python3,开发了这个命令的老哥也不打算继续写支持python3的版本了,所以,如果和python ...
- 2018-2019 ICPC, NEERC J. Streets and Avenues in Berhattan(DP)
题目链接:https://codeforc.es/contest/1070/problem/J 题意:给出一个长度为 k 的字符串,选出 n 个和 m 个不同位置的字符构成两个字符串,使得两个字符串相 ...
- JDBC (Java DataBase Connectivity)数据库连接池原理解析与实现
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- xml------文件打开样式
-----添加css样式修饰 引入css样式 浏览器展示 -------- 在服务器上通过 XSLT 转换 XML xsl文件 样式展示
- 配置魔药(DP)
配置魔药 [问题描述] 在<Harry Potter and the Chamber of Secrets>中,Ron的魔杖因为坐他老爸的Flying Car撞到了打人柳,不幸被打断了,从 ...
- 用javascript来判别回文数
什么是回文数?通俗的说就是正着读和倒着读都一样的字符串(即使是数字也是可以看成字符串的). 所以下面回文数都是用字符串来表示的,即判断回文数就是对字符串的判断. 举几个回文数的例子: i love u ...