首页
关于
Search
1
BT宝塔面板免费使用专业版网站监控报表插件
223 阅读
2
Python批量校验两个文件夹里面的文件MD5
158 阅读
3
更改宝塔nginx默认的日志格式
88 阅读
4
MySQL创建索引
85 阅读
5
欢迎使用 Typecho
82 阅读
默认分类
Java
SpringBoot
MySQL
Linux
登录
/
注册
Search
标签搜索
MySQL
Linux
JAVA
Docker
JavaScript
JDK
Redis
CentOS
SQL
SpringBoot
HTTP
Python
CDN
IP
前端
Micky
累计撰写
51
篇文章
累计收到
1
条评论
今日撰写
0
篇文章
首页
栏目
默认分类
Java
SpringBoot
MySQL
Linux
页面
关于
用户登录
登录
注册
搜索到
10
篇与
Linux
的结果
2022-01-05
Linux中查看日志文件的几种方式
作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了。尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于笔者这种小菜鸡来说,第一反应就是 cat,tail,vi(或vim)了,是的,我曾经用过好多次vim编辑器来查看日志文件。千万不要使用vi命令来查看大文件内容, 尤其对于那些几十G的大文件。因为vi仅仅是一个编辑器(可以理解为windows中的记事本),使用vi命令后则会把文件所有内容加载到内存中,如果内存不够大的话,则可能会导致服务器瘫痪。为了生成测试数据,笔者抓心挠肝,东拼西凑,写了一个生成测试文件的shell脚本,方便下文的命令演示,复制到linux命令行执行即可。# 生成10行测试数据(可根据需求自行修改) for ((i=1;i <= 10; i++)); do echo "第$i行" >> test.txt if [[ `expr $i % 2` -eq 0 ]] then echo -e >> test.txt fi done直接查看文件内容查看整个文件的内容的命令一共有三个,cat/tac/nl,nl命令笔者用的比较少,所以此处就不再演示了,感兴趣的小伙伴可以去百度一哈。cat [-AbEnTv]选项与参数: -A :相当于-vET的整合, 课列出一些特殊字符而不是空白而已-b :列出行号,进针对非空白行做行号显示,空白行不会标记-E :将结尾换行符$显示出来-n :打印出行号,连同空白行也会有行号,与-b的选项不同-T : 将[tab]键以^I显示出来-v : 列出一些看不出来的特殊字符范例1:查看test.txt文件的内容cat test.txt范例2:查看test.txt文件的内容, 并展示行号cat -n test.txt范例3: 不推荐使用cat查看大文件cat -n test.txtcat仅仅适合查看行数比较少的文件, 如果文件比较大则没有什么意义了,文件会快速翻到最后一行。如果文件中有特殊符号,比如[Tab], 换行等要显示出来,就必须加上-A之类的选项。当然cat也可以通过管道符配合more或less使用也可以达到比较好的效果。tac(和cat打印顺序相反)tac学过之后笔者从来没有实际应用过,由于用的比较少,所以大家知道就行了。不过这个命令比较有意思,和cat拼写相反,所以他们的打印顺序也相反,将最后一行作为第一行输出。范例1:倒叙查看文件的内容翻页查看moremore命令了解一下就行了,功能太少,笔者一般都用less命令。按键/命令空格键(Space):向下翻页回车(Enter):向下翻行/字符串:在当前显示的内容(翻页进度位置),向下查找这个字符串关键字:f:立刻显示文件名以及目前位置的行号q: :退出当前文件的浏览b或ctrl+b:往回翻页范例1:翻行后,查看行号lessless命令比more更加有弹性,可以前后翻页,不止可以向上查找,也可以向下查找。按键/命令[pagedown] :向下翻页[pageup] :向上翻页/字符串:在当前显示的内容(翻页进度位置),向下查找这个字符串关键字?字符串:向上查找字符串n :重复前一个查找,与/或?有关, 比如前一个命令是?表示向上查找,此时n会向上查找N: 反向的重复前一个查找g :跳转到当前文件数据的第一行G :跳转到当前文件数据的最后一行q :退出当前文件的浏览范例演示数据截取headhead命令用来提取文件的前n行,一般配合使用-n选项。当指定的行数为负数-x时,则会打印出除了后面x行的其他所有数据。范例1:查看前10行数据范例2(一共10000行,没有空行):head -n -9989 test.txt tail从文件尾部截取数据。tail也是工作中最常用的命令,因为可以利用-f选项,一直刷新获取文件尾部最新数据。选项与参数-n : 查看后n行数据,注意当n后面值带“+”号表示从第x行开始, 如 tail -n +1000 test.txt-f : 展示文件后面范例1:查看尾部5行数据【tail -n 5 test.txt】范例2:查看文件尾部数据,并实时刷新数据范例3:查看文件尾部5行数据,并实时刷新数据通用命令管道:Shell 还有一种功能,就是可以将两个或者多个命令(程序或者进程)连接到一起,把一个命令的输出作为下一个命令的输入,以这种方式连接的两个或者多个命令就形成了管道(pipe),管道命令用"|"来表示。范例:查看ll命令输出的前10行ll | head -n 3grep : 命令用于查找文件里符合条件的字符串,这两个命令也是linux中最常用的的,而在查看日志文件也通常会结合这两个命令一起使用。范例:查看文件文件中那些行包含‘999’cat -n test.txt | grep '999'>> : 文件追加重定向命令,可以往文件末尾追加数据,正如上文 echo "第$i行" >> test.txt。范例:将一个文件的最后10行复制到helloworld.txt中tail -n 10 >> helloworld.txtwc:文件字节数,字数,行数查看wc [-clw] [文件...], -c或--bytes或--chars 只显示Bytes数。-l或--lines 只显示行数。-w或--words 只显示字数。范例:查看文件行数wc -l案例实战案例1:打印日志文件中第11到20行。思路:首先获取前20行,然后在获取20行的后10行即可,需要使用管道命令。head -n 20 text.txt | tail -n 10cat -n test.txt | head -n 20 | tail -n 10(如果需要行号)总结Linux的命令实在太多了,对于开发来讲要用到的也有很多,不过笔者认为首先要知道是否存在相关命令,然后分类掌握最常用的,需要时再查表即可。没有必要去纠结命令记不记得住,毕竟这些东西决定不了你的上限。除了以上命令外,Linux中还有许多查看日志文件内容的奇巧淫记,比如sed命令等作者:Java填坑笔记链接:https://juejin.cn/post/6844904069627133966来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2022年01月05日
22 阅读
0 评论
0 点赞
2021-09-17
BT宝塔面板免费使用专业版网站监控报表插件
宝塔有一个非常好用的插件——网站监控报表,通过这个插件可以方便的看到网站的一些相关信息,尤其是蜘蛛访问记录。在情况允许的时候还是希望大家付费支持宝塔官方。教程如下:本教程以宝塔最新版本免费版 7.7.0位示例,在免费版 7.7.0中测试成功。1、首先,在 /www/server/panel/class找到panelplugin.py这个文件在文件中搜索下面这段代码softList['list'] = tmpList在下方添加如下代码 # 免费使用专业版插件 softList['pro'] = 1 for soft in softList['list']: soft['endtime'] = 0 # 免费使用专业版插件 2、保存之后重启面板。3、重启之后现在可以安装专业版插件,先安装好,还不能直接使用(PS:实测现在就能使用了 网上找的的教程 还要进行下面的操作)。4、在 /www/server/panel/plugin/total/ 路径 找到 total_main.py 这个文件在265行代码 if cache.get('bt_total'): return public.returnMsg(True, 'OK!'); 下方添加如下代码 # 宝塔面板绕过宝塔登陆的方法 session['bt_total'] = True return public.returnMsg(True,'OK!'); # 宝塔面板绕过宝塔登陆的方法 5、保存重启服务器,就可以使用专业版插件网站监控报表了。
2021年09月17日
223 阅读
0 评论
1 点赞
2021-09-15
更改宝塔nginx默认的日志格式
宝塔默认的nginx日志格式比较简单,无法满足部分人的要求,所以需要更改日志的格式宝塔的nginx配置文件存放位置与一般nginx是不一样宝塔存放nginx配置文件位置:/www/server/nginx/conf/nginx.conf一般nginx的配置文件位置:/usr/local/nginx/conf/nginx.conf在图片所示位置添加代码log_format main '$remote_addr|$http_x_forwarded_for [$time_local] $http_host "$request" ' '$status "$http_referer" ' '$http_user_agent $request_body [$body_bytes_sent字节,$request_time秒] '; 然后在网站部分的日志文件后面加个main 日志参数详解$http_x_forwarded_for #客户端的真实ip通常web服务器放在反向代理的后面这样就不能获取到客户的IP地址了通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中可以增加x_forwarded_for信息用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。$remote_addr # 远程客户端的IP地址 $remote_user #远程客户端用户名称用于记录浏览者进行身份验证时提供的名字如果没有登录就是空白。 $time_local #访问的时间与时区比如18/Jul/2012:17:00:01 +0800时间信息最后的"+0800"表示服务器所处时区位于UTC之后的8小时。 $request_method #HTTP请求方法,通常为"GET"或"POST" $scheme #请求使用的Web协议,"http" 或 "https" $host #HTTP请求行的主机名>"HOST"请求头字段>符合请求的服务器名.请求中的主机头字段,如果请求中的主机头不可用,则为服务器处理请求的服务器名称 $request_uri #这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看$uri更改或重写 $uri #请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如"/foo/bar.html" $query_string #请求中的参数值 $server_protocol #服务器的HTTP版本,通常为 "HTTP/1.0" 或 "HTTP/1.1" $status #HTTP响应代码 $body_bytes_sent #传输给客户端的字节数,响应头不计算在内;这个变量和Apache的mod_log_config模块中的"%B"参数保持兼容 $http_referer #url跳转来源,用来记录从那个页面链接访问过来的 $http_user_agent #用户终端浏览器等信息 $request_time #处理客户端请求使用的时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。 $upstream_addr #真正提供服务的主机地址 $request_id #生产唯一ID方便查询问题 $upstream_response_time #请求过程中upstream的响应时间
2021年09月15日
88 阅读
0 评论
0 点赞
2021-07-20
使用Docker安装Redis并设置密码
使用Docker安装Redis并设置密码创建Redis容器并设置密码docker run -d --name redis -p 6379:6379 redis --requirepass 123456前边是宿主机端口 后面是docker使用的端口备注 为现有的redis创建密码或修改密码的方法:1.进入redis的容器docker exec -it 容器ID bash2.进入redis目录/usr/local/bin3.运行命令:redis-cli4.查看现有的redis密码:config get requirepass5.设置redis密码config set requirepass ****(**为你要设置的密码)6.若出现(error) NOAUTH Authentication required.错误,则使用 auth 密码 来认证密码
2021年07月20日
54 阅读
0 评论
3 点赞
2021-07-15
CentOS系统安装JDK1.8 详细教程
一步步复制执行 肯定能 安装成功 小白无压力1.下载wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz2.安装(1)创建安装目录mkdir /usr/local/java/(2)解压至安装目录tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/java 配置环境变量打开文件vim /etc/profile在末尾添加export JAVA_HOME=/usr/local/java/jdk1.8.0_202 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH保存并退出:wq使环境变量生效source /etc/profile添加软链接ln -s /usr/local/java/jdk1.8.0_202/bin/java /usr/bin/java检查java -version
2021年07月15日
53 阅读
0 评论
4 点赞
1
2