0%

用户只能单设备登录

有时候在同一个系统中,只允许一个用户在一个设备登录。

之前的登陆者被顶掉

将最大会话数设置为1就可以保证用户只能同时在一个设备上登录

1
2
3
4
5
6
7
8
9
10
11
@Override
protected void configure(HttpSecurity http) throws Exception {
http.
.anyRequest().authenticated() // 其他需要认证
.and()
.csrf().disable() // 关闭csrf跨站请求伪造防护
// 设置一个用户只能在一个设备上登录 设置最大会话数
.sessionManagement().maximumSessions(1)
;

}
阅读全文 »

scala文件操作

scala的文件操作相关类是在scala.io包下

读取行

可以使用getLines方法来读取文件中的所有行

1
2
3
4
5
6
7
8
9
10
val source: BufferedSource = Source.fromFile("TestImplicit.scala", "UTF-8")
// 读取行
val value: Iterator[String] = source.getLines()
// 输出每行
for (line <- value) {
println(line)
}

// 也可以直接输出整个文件内容
println(source.mkString)

执行shell命令

scala执行shell命令非常简单

1
2
3
4
5
6
7
8
// shell命令执行
// process包中包含了一个从字符串到ProcessBuilder对象的隐式转换
// !操作的就是ProcessBuilder对象,返回的结果是执行程序的返回值
import sys.process._
"ls -al /scala_study/src"!
// 如果使用!!,会以字符串的形式返回
val str = "ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" !!;
println(str)

还支持管道符

1
2
// 还支持管道来将结果传递到另一个程序  #|就是管道符
"ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" #| "grep main" !

支持重定向

1
2
3
4
5
6
7
8
9
10
import java.io.File

// #> 输出重定向到文件
"ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" #> new File("output.txt")!

// #>> 输出重定向到文件,追加
"ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" #>> new File("output.txt")!

// #< 从文件输出
"grep main" #< new File("output.txt")!

发现就是在shell的基础上加了个#

如 管道符|变成了#|,重定向>变成了#>

Git协议

Git可以使用四种协议来传输资料:本地协议(Local)、HTTP协议、SSH协议以及Git协议

本地协议

本地协议的远程仓库就是硬盘的另一个目录

1
2
3
4
5
# 克隆本地协议库
git clone file:///opt/git/project.git

#添加本地协议库到现有Git项目
git remote add local /opt/git/project.git

HTTP协议

这个就是我们平时用的最多的一种方式

1
git clone https://gitee.com/SiXiangPiaoFuZhe/spring4.git

SSH协议

SSH协议是一个验证授权的网络协议

1
2
# 指定ssh://的url
git clone ssh://user@server/project.git

Git协议

Git协议是包含在Git里的一个特殊的守护进程,监听一个特定的端口(9418),类似于SSH服务

Nginx多端适配

通过nginx获取用户设备的Agent来判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 多端适配
server {
listen 7000;
server_name zhhll.icu;
location / {
root /Users/zhanghe/Desktop/nginx;
# 1.如果是静态页面判断agent如果是移动端则指向移动端
# 2.pc和m端是两个服务,可以通过proxy_pass反向代理到对应的服务
if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
root /Users/zhanghe/Desktop/nginx-demo/mob;
}
index index.html index.htm;
}
}

变为只读问题

跑在线上的elasticsearch服务突然不可以新增/修改数据了,但是查询是正常的

看了一下日志发现

1
flood stage disk watermark [95%] exceeded on [oeTRcb8iT_Kwo-s-GF4Yww][oeTRcb8][/var/lib/elasticsearch/nodes/0] free: 1.9gb[4%], all indices on this node will be marked read-only

这是由于磁盘空间不足,导致Elasticsearch触发磁盘保护,强制将所有索引设置成了只读状态

由于不是云服务器,不能进行立马扩容,删除掉一些无用的数据后,先将磁盘的阈值关掉,之后在进行磁盘扩容

1
2
3
4
5
6
PUT  192.168.1.220:9200/_cluster/settings
{
"persistent": {
"cluster.routing.allocation.disk.threshold_enabled": "false"
}
}
阅读全文 »