linux有时候会遇到文件很大,关键字查找都要超过整屏,无法查看到所有内容。比如一个非常大的日志文件info.log,我们要查看某段字符所有日志,可以同 cat info.log | grep ‘1711178968′ ,如果显示过多,此时可以加时间,行数控制。也可以通过 ‘>>’指令。 cat info.log | grep ‘1711178968’ >> temp.log 将中间结果暂存下来,通过more ,less等工具一页页查看temp.log文件
假如我们根据相关的id定位到了这样一段日志,现在我们要找出所有报这个错的日志,并且把 refundReq=后面那串json给截取下来,有了这串json,我们就可以重新去请求 refundOrderV3方法。
对于后端开发来说,定位日志很重要,可以加快bug的处理效率,之前习惯了使用tail -fn 100 test.logs,然后再用/加上关键字,定位日志内容,不过如果日志内容太多,不太好排查问题,就需要将日志截取到本地,这时候可以使用sed命令将日志截取到本地
格式:函数必须要放在最前面,function 后是函数的名字,并且 function 这个单词是可以省略掉的,花括号{} 里面为具体的命令
该文介绍了一种通过shell命令行从日志文件中筛选并输出符合特定条件的日志的方法。该方法可以用于快速获取某个时间段内的日志,从而进行后续的分析和处理。该方法利用了grep和head等命令,可以快速获取想要的信息。同时,该方法还可以根据需要对输出结果进行进一步的处理,比如保存到文件或者发送到远程服务器等。
作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了。尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于笔者这种小菜鸡来说,第一反应就是 cat,tail,vi(或vim)了,是的,我曾经用过好多次vim编辑器来查看日志文件(可耻)。
替换 sed 's/abc/efg/g' 变量 定义变量 var=123 var="abc" var='efg' 双引号支持特殊字符转义,单引号则不支持转义 字符串开启转义 echo -e "abc\nd" #abd #d 字符串未开启转义 echo "abc\nd" #abc\nd 数字变量操作 数字变量计算 i=1 echo $((i+5)) #6 遍历i更新 ((i=i+3)) echo $i #9 浮点数字需要用 a=1 b=2.3 echo `awk "BEGI
log_bin binlog的开关和binlog的前缀
IOS端的APP渗透测试在整个互联网上相关的安全文章较少,前几天有位客户的APP数据被篡改,导致用户被随意提现,任意的提币,转币给平台的运营造成了很大的经济损失,通过朋友介绍找到我们SINE安全公司寻求安全解决方案,防止APP继续被篡改与攻击,针对客户的这一情况我们立即成立安全应急响应小组,对客户的APP以及服务器进行了全面的安全渗透。
近期,邮件告警通知无法送达,导致部分错误信息开发人员没有及时收到,触发了手动电话通知机制(客户,你懂得)。这个锅我背,之前好好的,突然前段时间就不好使了(脚本什么的并没有动过)。快周末了,重新调整了一下告警通知,顺便加入钉钉机器人监控报警。
前言 近期,邮件告警通知无法送达,导致部分错误信息开发人员没有及时收到,触发了手动电话通知机制(客户,你懂得)。这个锅我背,之前好好的,突然前段时间就不好使了(脚本什么的并没有动过)。快周末了,重新调整了一下告警通知,顺便加入钉钉机器人监控报警。 服务配置 服务器:192.168.1.180 访问地址:http://logs.52itstyle.com 相关软件 ELK(ElasticSearch、Logstash、Kibana)、Nginx、sendmail、钉钉 告警通知 邮件 + 钉钉通知 logst
cut应用场景:通常对数据进行列的提取 (在工作中,我们通常会对数据库或者查出来的日志进行列的提取)
使用crontable 创建任务后任务会记录到/var/sponl/cron里面去 执行日志保存到/var/log/cron中
上一章我们介绍了shell编程的语法和应用,在实际生产环境中,Linux的系统运维者经常会查看系统中的各项性能、参数,为了提高查看效率,我们可以编写一些监控脚本以便系统的自动化运维。
RCE(Remote code execution)远程代码执行漏洞,RCE又分命令执行和代码执行。
编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下:
0-9:-4表示从倒数第9个字符开始,向后截取所有字符,当同时指定截取长度为":-4"时,表示从倒数第9个字符向后截取所有字符以后,删除截取以后的字符的最后4个字符,也可以理解成截取最后9个字符的前5个字符。
linux系统日志 /var/log/messages //是linux系统一个总的日志——>除非某些服务,有定义单独的日志 /etc/logrotate.conf 日志切割配置文件 参考日志文件文章 dmesg命令 /var/log/dmesg 日志 last命令,调用的文件/var/log/wtmp lastb命令查看登录失败的用户,对应的文件时/var/log/btmp /var/log/secure 系统日志 /var/log/messages //是linux系统一个总
3、对请求到的日志里的数据,分析、截取、分割操作 1)把结果导入数据库(按项目名、日期、项目id、死链、日志原始链接) 2)拼成html邮件格式(table) 3)整个项目部署到Linux上,设定crontab定时任务,每天发送
由于开启过慢查询日志bin-log, 我们就必须为我们的function指定一个参数。 主从复制,主机会将写操作记录在bin-log日志中。从机读取bin-log日志,执行语句来同步数据。如果使 用函数来操作数据,会导致从机和主键操作时间不一致。所以,默认情况下,mysql不开启创建函数设 置。
Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。
ADB(Android Debug Bridge)是一个用于在计算机和 Android 设备之间通信的命令行工具。它是 Android SDK(Software Development Kit)的一部分,主要用于调试和管理 Android 设备。ADB 的作用包括但不限于:
例子: wget -rp https://www.abcd.com/123.html
截取一段时间内的log日志可以使用sed命令对log文件进行抽取操作: 1,sed查看某时间段到现在的系统日志: sed -n '/May 20 17/,$p' /var/log/messages | less 2,sed 截选时间段日志: 假如日志的格式是-- “2015-05-04 09:25:55,606 后面跟日志内容 ”这样的 目标是需要将05-04的09:25:55 和09:28:08 之间的日志截取出来: 使用sed命令如下: sed -n ‘/2015-05-04 09:25:55/,/2015-05-04 09:28:55/p’ logfile 这样可以精确地截取出来某个时间段的日志。 如果需要截取的日志太大,达到几个G的话,不能去vi打开文件: 根据之前的日志格式,使用正则表达式: sed -n ‘/2010-11-17 09:[0-9][0-9]:[0-9][0-9]/,/2010-11-17 16:[0-9][0-9]:[0-9][0-9]/p’ logfile 如果没有问题的话,上面就能筛选出指定的时间段的日志。
曾经写过服务器安全狗 linux 版安装教程,凡是此类的软件都是新手站长、对 linux 安全设置不熟悉的站长来使用的,虽然会占用一部分内存但是也提高了服务器的安全性,同时能够阻挡一部分的 CC 攻击
在 CentOS 6.x 中,日志服务已经由 rsyslogd 取代了原先的 syslogd。Red Hat 公司认为 syslogd 已经不能满足工作中的需求,rsyslogd 相比 syslogd 具有一些新的特点:
三、用Backtrack 5 R1中的W3AF(Web应用扫描器或者叫做安全审计工具)
日志路径:/usr/local/nginx/logs, 截取access.log中2019年3月24日17点00~02之间的日志: 写法1:
1. 为了让我们的代码更规范化,所以搞出了日志等级分类,常见的日志输出等级有DEBUG NORMAL WARNING ERROR FATAL等,再配合上程序运行的时间,输出的内容等,公司中就是使用日志分类的方式来记录程序的输出,方便程序员找bug。 实际上在系统目录/var/log/messages文件中也记录了Linux系统自己的日志输出,可以看到我的Linux系统中之前在使用时产生了很多的error和warning,我们的代码也可以搞出来这样的输出日志信息到文件的功能。
前端展示 --> 索引搜索 <-- 日志提取及过滤 --> 日志缓存 <-- 日志收集 Kibana --> Elastash <-- Logstash --> redis <-- filebeat
当我们查看java日志的时候,有一些报错日志,并不会是输出到一行中,而是唰唰唰打印一堆,就像下面这样
-----------------------------------------------------------------------------------------
大家好,我们是红日安全-代码审计小组。最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。现在大家所看到的系列文章,属于项目 第一阶段 的内容,本阶段的内容题目均来自 PHP SECURITY CALENDAR 2017 。对于每一道题目,我们均给出对应的分析,并结合实际CMS进行解说。在文章的最后,我们还会留一道CTF题目,供大家练习,希望大家喜欢。下面是 第5篇 代码审计文章:
前言 这两天自己挽起袖子处理日志,终于把AWK给入门了。其实AWK的基本使用,学起来也就半天的时间,之前总是靠同事代劳,惰性呀。 此文仅为菜鸟入门,运维们请勿围观。 下面是被处理的日志的示例,不那么标准,但不标准的日志正是标准的情况。 [2015-08-20 10:00:55.600] - [192.168.0.73/192.168.0.75:1080 com.vip.xxx.MyService_2.0 0 106046 100346 90ms 110ms] 基本语句 最基本的语句,以空格做分割,提取所
绝大多数情况下项目出问题了,第一时间就会打开服务器,cd… tail … 一套连招查看到底除了什么错误日志,虽然这种方法直达问题本质,但好像有些不太优雅,毕竟打开Xshell等也需要耗费时间,看时间只能输入命令和上下查看,针对这个就设计了一个接口,解决这个问题。
---------------------------------------------------------------
常用linux命令: 随机数 时间 ip 日志分析 硬件信息 进程端口 调整分区大小 随机数 生成10以内的随机数 echo $RANDOM%10 | bc 生成11-20之间的随机数 echo $(($(date +%s)%11+20-11)) 时间 获取当前系统的时间 date|cut -c 1-26 # 2016年 07月 23日 星期六 19:12:40 查看硬件时间 hwclock 修改系统时间 date -s "2019-03-29 13:58:00" 将系统时间同步到硬件时间 hwclock
在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof 命令的基本用法,本文中 demo 的演示环境为 ubuntu 18.04。
shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。格式: function f_name() { command }函数必须要放在最前面 示例1 #!/bin/bash input() { echo $1 $2 $# $0 } input 1 a b 示例2 #!/bin/bash sum() { s=$[$1+$2] ec
binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架构人员来讲是非常重要的。
来源: https://martinfowler.com/articles/patterns-of-distributed-systems/
前言 在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭。 像一些高级点的命令,比如说 Xargs 命令、管道命令、自动应答命令等,如果当初我要是知道,那我也可能写出简洁高效的脚本。 不管出于任何原因,我都想对一些 Linux 使用的高级命令进行用法说明,利人利己,以后不记得的话,我也可以回头翻来看看。 一、实用的 xargs 命令 在平时的使用中,我认为 xargs 这个命令还是较为重要和方便的。我们可以通
OpenSSH是SSH(Secure Shell)协议的免费开源实现。很多人误认为OpenSSH与OpenSSL有关联,但实际上这两个计划有不同的目的和不同的发展团队,名称相近只是因为两者有同样的发展目标──提供开放源代码的加密通信软件。
1.在新服务器上安装并搭建好gitlab2.手动+自动将旧服务器上的gitlab备份3.手动+自动将gitlab备份包scp到新服务器上4.手动+自动恢复新服务器上的gitlab备份包5.在新旧服务器上自动删除过期备份包
在排除故障时,需要分析发生故障的原因,避免再次出现同样的问题,需要对日志进行分析,截取故障前后时间段的日志。通常用正则表达式来获取某段时间的内的日志,比较繁琐。可以通过awk方便简捷的实现。 我这里以截取nginx访问日志为例: 查看21/Jul/2014:14:37:50到21/Jul/2014:14:38:00时间段内bbs.ttlsa.com的访问日志。 # cat bbs.ttlsa.com.access.log | awk '$4 >="[21/Jul/2014:14:37:50" && $4 <
比如,有时候,我们把程序放在后台了,希望其输出也进行保存,而不是混乱而无序的输出到前台,我们就可以使用重定向。
--增加linux7安装11g,自动替换 $(MK_EMAGENT_NMECTL) -lnnz11。
linux shell 常见的面试问题,基本是先让你随便说一些,测试一下你掌握的广度,这时候你至少要说上十个才行,但是!不要说太难的,否则很容易掉进自己的坑里,相当于提醒了面试官去问你 : find ,vi编辑器这种会让面试官出一个极复杂的命令。但是之后 面试官仍然会出一些 非常复杂的命令,本小节复习,除了基础中常见的命令之外,还有常见的复杂命令。
领取专属 10元无门槛券
手把手带您无忧上云