forever杨的个人博客

I want to be forever young!


  • 首页

  • 文章202

  • 分类31

  • 标签175

  • 公益

  • 关于

  • 搜索

zookeeper 命令使用

发表于 2018-04-28 | 更新于 2018-05-30 | 分类于 zookeeper
| 字数: 171 | 时长 ≈ 1 分钟
标签 zookeeper

zkCli.sh

1
2
3
# 指定ip和端口,zkCli.sh默认进入的是2181端口
# sh zkCli.sh -server localhsot:2170
sh zkCli.sh -server ip:port

zkServer.sh

1
2
3
4
# 启动
sh zkServer.sh start
# 查看状态
sh zkServersh status

IP 操作工具类

发表于 2018-04-14 | 更新于 2021-04-09 | 分类于 Java
| 字数: 3.7k | 时长 ≈ 3 分钟

IpUtils.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.net.InetAddress;
import java.net.UnknownHostException;

/**
* IP 操作工具类
*
* @author Created by YL on 2018/4/4
*/
public class IpUtils {

/**
* 获取 IP
* <pre>
* 1、如果使用ngnix反向代理,导致不能使用HttpServletRequest.getRemoteAddr()获取来访者真实ip的问题,
* 2、对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
* </pre>
*/
public static String getIpAddr(HttpServletRequest request) {
String ipAddr = request.getHeader("x-forwarded-for");
if (ipAddr == null || ipAddr.length() == 0 || "unknown".equalsIgnoreCase(ipAddr)) {
ipAddr = request.getHeader("Proxy-Client-IP");
}
if (ipAddr == null || ipAddr.length() == 0 || "unknown".equalsIgnoreCase(ipAddr)) {
ipAddr = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddr == null || ipAddr.length() == 0 || "unknown".equalsIgnoreCase(ipAddr)) {
ipAddr = request.getRemoteAddr();
if ("127.0.0.1".equals(ipAddr) || "0:0:0:0:0:0:0:1".equals(ipAddr)) {
//根据网卡取本机配置的IP
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
ipAddr = inet.getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
// 没有考虑ipv6
// if (ipAddr != null && ipAddr.length() > 15) { //"***.***.***.***".length() = 15
// if (ipAddr.indexOf(",") > 0) {
// ipAddr = ipAddr.substring(0, ipAddr.indexOf(","));
// }
// }
if (ipAddr != null && ipAddr.contains(",")) {
ipAddr = ipAddr.substring(0, ipAddr.indexOf(","));
}
return ipAddr;
}

/**
* 根据 IP 获得 MAC 地址
*
* @param ip IP 地址
*/
public static String getMacAddr(String ip) {
String macAddr = "";
InputStreamReader isr = null;
LineNumberReader reader = null;
try {
Process p = Runtime.getRuntime().exec("nbtstat -A " + ip);
isr = new InputStreamReader(p.getInputStream());
reader = new LineNumberReader(isr);
for (int i = 1; i < 100; i++) {
String str = reader.readLine();
if (str != null) {
if (str.indexOf("MAC Address") > 1) {
macAddr = str.substring(str.indexOf("MAC Address") + 14, str.length());
break;
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (isr != null) {
try {
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return macAddr;
}
}

Oracle 使用

发表于 2018-04-08 | 更新于 2021-01-26 | 分类于 Oracle
| 字数: 2.1k | 时长 ≈ 2 分钟
标签 Oracle

修改表名

1
rename <old table_name> to <new table_name>
阅读全文 »

spring boot 打包相关

发表于 2018-04-08 | 更新于 2021-04-09 | 分类于 Java
| 字数: 3.6k | 时长 ≈ 3 分钟
标签 spring-boot

webjars打包

包路径:src\main\resources\webjars

1
2
3
4
5
6
7
8
9
<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<targetPath>${project.build.outputDirectory}/META-INF/resources/</targetPath>
</resource>
</resources>
</build>

阅读全文 »

Java、JS版AES加密算法工具类

发表于 2018-02-18 | 更新于 2021-04-09 | 分类于 Java
| 字数: 7.2k | 时长 ≈ 7 分钟
标签 Javascript AES

[TOC]
本文主要是实现AES算法的Java版本和Javascript版本,并提供测试例子。
AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准。根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128、AES-192和AES-256。
Java中的PKCS5Padding和Javascript中的PKCS7Padding的结果是一样。

阅读全文 »

Java、JS版RSA加密算法工具类

发表于 2018-02-18 | 更新于 2021-04-09 | 分类于 Java
| 字数: 51k | 时长 ≈ 46 分钟
标签 Javascript RSA

[TOC]
本文主要是实现RSA算法的Java版本和Javascript版本,并提供测试例子。
1、RSA算法可以用于数据加密和数字签名
2、RSA算法相对于DES/AES等对称加密算法,他的速度要慢的多
3、使用原则:公钥加密,私钥解密;私钥加密,公钥解密

阅读全文 »

hexo github ignorecase

发表于 2018-02-06 | 更新于 2021-12-09 | 分类于 hexo
| 字数: 605 | 时长 ≈ 1 分钟
标签 git hexo

Hexo 部署到 Github Pages 文件夹大小写问题

问题

使用 Hexo 部署博客到 Github Pages 时经常会遇到文件夹大小写问题导致的 404问题。

例如 Hexo 生成了一个 javasccript Category文件夹,但是我后来把它改成了 Javasccript,即 javasccript 的首字母大写了。Hexo会生成正确,但部署到 Github 上却老是不正确。

阅读全文 »

zookeeper 清理日志文件

发表于 2018-02-06 | 更新于 2018-05-17 | 分类于 zookeeper
| 字数: 791 | 时长 ≈ 1 分钟

clear

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env bash

# @Author: YL
# @Date: 2017-11-01 08:59:34
# @Last Modified by: YL
# @Last Modified time: 2017-11-01 09:36:09
# 此文件放到 zookeeper 的 bin 目录下

cd `dirname $0`
cd ..
NODE_HOME=`pwd`

# snapshot
NODE_DATA_DIR=$NODE_HOME/data/version-2
# snapshot log
NODE_LOG_DIR=$NODE_HOME/logs/version-2
# zk log
NODE_LOGS=$NODE_HOME/logs

# 定义了删除对应目录中的文件,保留最新的 count 个文件,可以将他写到 crontab 中
count=3
count=$[$count+1]
ls -t $NODE_LOG_DIR/log.* | tail -n +$count | xargs rm -f
ls -t $NODE_DATA_DIR/snapshot.* | tail -n +$count | xargs rm -f
ls -t $NODE_LOGS/zookeeper.log.* | tail -n +$count | xargs rm -f

# date pattern
DATE_PATTERN="[$(date '+%Y-%m-%d %H:%M:%S')]"
STDOUT_FILE=$NODE_LOGS/stdout.log
echo "$DATE_PATTERN clear logs success" | tee -a $STDOUT_FILE

Tomcat 启动脚本

发表于 2018-02-06 | 更新于 2021-03-15 | 分类于 Tomcat
| 字数: 8.9k | 时长 ≈ 8 分钟

Tomcat 启动脚本

主 Tomcat + 应用部署 Tomcat

应用部署方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[txrd@host-148 /data/]$ tree -af 
.
├── ./apache-tomcat-8.5.57
│ └── ./bin
│ └── ./conf
│ └── ./lib
│ └── ./temp
│ └── ./webapps
│ └── ./work
├── ./szim
│ └── ./project
│ └── ./szim.war
│ └── ./tomcat
│ └── ./conf
│ └── ./temp
│ └── ./webapps
│ └── ./work
│ └── ./logs.sh
│ └── ./restart.sh
阅读全文 »

zookeeper重启脚本

发表于 2018-02-06 | 更新于 2018-05-17 | 分类于 zookeeper
| 字数: 240 | 时长 ≈ 1 分钟

restart

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env bash

# @Author: YL
# @Date: 2017-06-29 09:00:10
# @Last Modified by: YL
# @Last Modified time: 2017-11-01 09:37:30
# 此文件放到 zookeeper 的 bin 目录下

cd `dirname $0`

./zkServer.sh stop
sleep 3
./zkServer.sh start

zookeeper 启动脚本

发表于 2018-02-06 | 更新于 2020-08-17 | 分类于 zookeeper
| 字数: 1.5k | 时长 ≈ 1 分钟

start

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env bash

# @Author: YL
# @Date: 2017-06-28 10:23:20
# @Last Modified by: YL
# @Last Modified time: 2017-11-01 09:37:41
# 此文件放到 zookeeper 的 bin 目录下

cd `dirname $0`
NODE_BIN_DIR=`pwd`
NODE_LIB_DIR=$NODE_BIN_DIR/../lib/
cd ..
NODE_HOME=`pwd`

# mkdir logs dir
NODE_DATA_LOG_DIR=`sed '/dataLogDir/!d;s/.*=//' conf/zoo.cfg | tr -d '\r'`
NODE_LOGS_DIR=""
if [ -n "$NODE_DATA_LOG_DIR" ]; then
NODE_LOGS_DIR=$NODE_DATA_LOG_DIR
else
NODE_LOGS_DIR=$NODE_HOME/logs
fi
if [ ! -d $NODE_LOGS_DIR ]; then
mkdir $NODE_LOGS_DIR
fi
STDOUT_FILE=$NODE_LOGS_DIR/stdout.log

echo "[$(date '+%Y-%m-%d %H:%M:%S')] NODE_BIN_DIR: $NODE_BIN_DIR" | tee -a $STDOUT_FILE

# pid
NODE_PID=`ps -ef | grep "$NODE_LIB_DIR" | grep -v grep | awk '{print $2}'`
if [ -n "$NODE_PID" ]; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: The $NODE_LIB_DIR already started! pid: $NODE_PID" | tee -a $STDOUT_FILE
exit 1
fi

# port
NODE_PORT=`sed '/clientPort/!d;s/.*=//' conf/zoo.cfg | tr -d '\r'`
if [ -n "$NODE_PORT" ]; then
NODE_PORT_COUNT=`netstat -tln | grep $NODE_PORT | wc -l`
if [ $NODE_PORT_COUNT -gt 0 ]; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: The $NODE_LIB_DIR port $NODE_PORT already used!" | tee -a $STDOUT_FILE
exit 1
fi
fi

# starting
cd $NODE_BIN_DIR
./zkServer.sh start

NODE_PID=`ps -ef | grep "$NODE_LIB_DIR" | grep -v grep | awk '{print $2}'`
echo "[$(date '+%Y-%m-%d %H:%M:%S')] The $NODE_LIB_DIR started OK! pid: $NODE_PID" | tee -a $STDOUT_FILE

zookeeper stop脚本

发表于 2018-02-06 | 更新于 2018-05-17 | 分类于 zookeeper
| 字数: 205 | 时长 ≈ 1 分钟

stop

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env bash

# @Author: YL
# @Date: 2017-06-29 09:00:00
# @Last Modified by: YL
# @Last Modified time: 2017-11-01 09:37:49
# 此文件放到 zookeeper 的 bin 目录下

cd `dirname $0`
./zkServer.sh stop

zookeeper evn 环境变量配置脚本

发表于 2018-02-06 | 更新于 2018-05-17 | 分类于 zookeeper
| 字数: 440 | 时长 ≈ 1 分钟

zookeeper-env

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env bash

# @Author: YL
# @Date: 2017-10-31 10:27:16
# @Last Modified by: YL
# @Last Modified time: 2017-11-01 09:36:43
# 此文件放到 zookeeper 的 conf 目录下

# java env
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export JVMFLAGS="-Xms1536m -Xmx1536m $JVMFLAGS"

cd `dirname $0`
cd ..
NODE_HOME=`pwd`

# zookeeper env
ZOO_LOG_DIR=$NODE_HOME/logs
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

Linux cat 命令

发表于 2018-02-06 | 更新于 2020-10-18 | 分类于 Linux
| 字数: 119 | 时长 ≈ 1 分钟
标签 shell cat

cat

统计出现次数

1
2
# linux统计某一文件中字符串“sent ip”出现的次数:
cat nohup.log |grep "sent ip" |wc -l

清空默认文件中的内容

1
cat /dev/null > filename

Linux cp 命令

发表于 2018-02-06 | 更新于 2020-10-19 | 分类于 Linux
| 字数: 96 | 时长 ≈ 1 分钟
标签 shell cp

cp

复制文件夹

1
2
3
4
cp -r [old source] -d [new source]

# -p 保持原有文件权限
cp -r -p [old source] -d [new source]
1…91011…14
forever杨

forever杨

开心又过一日,唔开心又过一日

202 文章
31 分类
175 标签
GitHub
友情链接
  • Tidy的个人博客
© 2024 forever杨 | 站点总字数: 706k