小滴课堂后端面试题(5)~持续更新中

小滴课堂后端面试题(5)~持续更新中,第1张

一、工作中,经常会对日志进行处理,或者更新项目配置,但是日志或者配置文件都是字符串密密麻麻,用肉眼出错的概率很大,而且效率非常低,此时可以用什么手段来处理这个问题?

答案:

用命令把springframework.log内容中的关键词springframework替换成noperson

  • springframework.log
INFO: Attempt #1 to do the action check updates server
Oct 24, 2019 8:42:22 PM org.springframework.context.support.AbstractApplic
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicat
icationContext]; startup date [Thu Oct 24 20:42:22 CST 2019]; root of cont
Oct 24, 2019 8:42:22 PM org.springframework.context.support.AbstractApplic
INFO: Bean factory for application context [org.springframework.web.contex
: org.springframework.beans.factory.support.DefaultListableBeanFactory@c9d
Oct 24, 2019 8:42:22 PM org.springframework.beans.factory.support.DefaultL
INFO: Pre-instantiating singletons in org.springframework.beans.factory.su
ing beans [authenticationManager]; root of factory hierarchy
Oct 24, 2019 8:42:23 PM org.springframework.context.support.AbstractApplic
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicat
icationContext]; startup date [Thu Oct 24 20:42:23 CST 2019]; root of cont
Oct 24, 2019 8:42:23 PM org.springframework.context.support.AbstractApplic
INFO: Bean factory for application context [org.springframework.web.contex
: org.springframework.beans.factory.support.DefaultListableBeanFactory@1cb
Oct 24, 2019 8:42:23 PM org.springframework.beans.factory.support.DefaultL
INFO: Pre-instantiating singletons in org.springframework.beans.factory.su
ning beans [filter,legacy]; root of factory hierarchy
复制代码
  • sed -i "s/springframework/noperson/g" springframework.log
二、服务器监控告警,某个文件系统磁盘空间使用率高达95%,此时必须清理出空间,否则面临着程序日志无法写入或者程序运行所需使用空间,将导致程序挂死,服务宕掉风险。若是用手工进入对应路径,进行查找一段时间前的没用日志并删除,效率极低,请解决这个问题?

答案:找出最后创建时间是10天前,后缀是*.log的文件并删除

find / -ctime +10 -a -type f -name "*.log" -exec rm -rf {} \;
复制代码
三、数据库备份是件非常重要的事情,如何设置定时备份?

答案: 可以利用linux 的定时任务,轻松搞定。

#譬如:在3月份内,每天早晨6点到18点这个时间段,每隔2小时执行一次/usr/bin/mysql_backup.sh
0 6-18/2 * 3 * /usr/bin/mysql_backup.sh
复制代码
四、公司公网网站经常卡顿,经查有些ip对网站发起频繁访问,现要求写一个shell脚本屏蔽这些高频繁访问的ip(基于 fifirewall防火墙,网站是以nginx作为中间件,nginx日志路径:/usr/local/nginx/logs,一分钟超过200视为频繁)

答案:

#!/bin/bash

DATE=$(date +%d/%b/%Y:%H:%M)

NGINX_PATH=/usr/local/nginx/logs/access.log

#先tail防止文件过大,读取慢,数字可调整每分钟最大的访问量。awk不能直接过滤日志,因为

包含特殊字符。

ABNORMAL_IP=$(tail -n5000 ${NGINX_PATH} |grep $DATE |awk

'{a[$1]++}END{for(i in a)if(a[i]>200)print i}')

#执行防火墙

if [ ! $ABNORMAL_IP ];then

 exit

else

for IP in $ABNORMAL_IP;

 do

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source

address="${IP}" port protocol="tcp" port="80" reject" && firewall-cmd -

-reload

echo -e  "${IP}\n"

>>/usr/local/nginx/shell_script/nginx_firewall_result.txt

 done

fi

#查看防火墙规则

#firewall-cmd --zone=public --list-rich-rules

#放开防火墙对ip的限制

#firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source

address="${IP}" port protocol="tcp" port="80" accept" && firewall-cmd -

-reload

#如果未生效,编辑配置文件

#vi /etc/firewalld/zones/public.xml

#重启防火墙服务

#systemctl restart firewalld.service
复制代码
五、你是否知道什么是浏览器同源策略

同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。

由Netscape提出的一个著名的安全策略。

当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面

当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,

即检查是否同源,只有和百度同源的脚本才会被执行。

如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。

同源策略是浏览器的行为,是为了保护本地数据不被JavaScript代码获取回来的数据污染,因此拦截的是客户端发

出的请求回来的数据接收,即请求发送了,服务器响应了,但是无法被浏览器接收


 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/801087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-07
下一篇 2022-05-07

发表评论

登录后才能评论

评论列表(0条)

保存