Skip to content

Commit

Permalink
update 2022年12月21日 星期三 16时41分12秒 CST
Browse files Browse the repository at this point in the history
  • Loading branch information
No-Github committed Dec 21, 2022
1 parent 95798d7 commit 18ff490
Show file tree
Hide file tree
Showing 70 changed files with 2,042 additions and 861 deletions.
22 changes: 22 additions & 0 deletions 1earn/Develop/Golang/GO.md
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,28 @@ Go 的源码文件有 3 个种类,即命令源码文件、库源码文件和测

同一个代码包中可以存在多个代码包初始化函数,甚至代码包内的每一个源码文件都可以定义多个代码包初始化函数.Go 不会保证同一个代码包中多个代码包初始化函数的执行顺序.此外,被导入的代码包的初始化函数总是会先执行.在上例中,fmt 和 runtime 包中的 init 函数(如果有的话)会先执行,然后当前文件中的 init 函数才会执行.

### 跨平台编译

Windows下编译Mac平台64位可执行程序:
```bash
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
```

Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
```bash
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
```

Linux 下编译 Mac 和 Windows 平台64位可执行程序:
```bash
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
```

---

## 一些项目
Expand Down
1 change: 1 addition & 0 deletions 1earn/Develop/Golang/笔记/goland远程调试.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ f8x -go
**dlv**

装一个delve
- https://github.com/go-delve/delve/tree/master/Documentation/installation

```bash
export GO111MODULE=on && export GOPROXY=https://goproxy.io
Expand Down
86 changes: 7 additions & 79 deletions 1earn/Develop/标记语言/JSON/JSON学习笔记.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
**JSONPath 在线查询工具**
- http://jsonpath.com/

**文章**
- [WORKING WITH DATA IN JSON FORMAT](https://www.trustedsec.com/blog/working-with-data-in-json-format/)

---

**什么是 JSON ?**
Expand Down Expand Up @@ -677,90 +680,15 @@ document.getElementById("url").innerHTML=obj.sites[0].url

---

## JSONP 教程

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

为什么我们从不同的域(网站)访问数据需要一个特殊的技术( JSONP )呢?这是因为同源策略。

同源策略,它是由 Netscape 提出的一个著名的安全策略,现在所有支持 JavaScript 的浏览器都会使用这个策略。

**JSONP 应用**

- 服务端 JSONP 格式数据
## jsonl

如客户想访问 : localhost/jsonp.php?jsoncallback=callbackFunction。
`jsonlines`

假设客户期望返回数据:`["customername1","customername2"]`

真正返回到客户端的数据显示为: `callbackFunction(["customername1","customername2"])`

服务端文件 jsonp.php 代码为:
```php
<?php
header('Content-type: application/json');
//获取回调函数名
$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);
//json数据
$json_data = '["customername1","customername2"]';
//输出jsonp格式的数据
echo $jsoncallback . "(" . $json_data . ")";
?>
```

- 客户端实现 callbackFunction 函数

```html
<script type="text/javascript">
function callbackFunction(result, methodName)
{
var html = '<ul>';
for(var i = 0; i < result.length; i++)
{
html += '<li>' + result[i] + '</li>';
}
html += '</ul>';
document.getElementById('divCustomers').innerHTML = html;
}
</script>
```

- 页面展示

```html
<div id="divCustomers"></div>
```

- 客户端页面完整代码

```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSONP 实例</title>
</head>
<body>
<div id="divCustomers"></div>
<script type="text/javascript">
function callbackFunction(result, methodName)
{
var html = '<ul>';
for(var i = 0; i < result.length; i++)
{
html += '<li>' + result[i] + '</li>';
}
html += '</ul>';
document.getElementById('divCustomers').innerHTML = html;
}
</script>
<script type="text/javascript" src="jsonp.php?jsoncallback=callbackFunction"></script>
</body>
</html>
```
- https://jsonlines.org/examples/

---

## Source & Reference

- [JSON 教程](https://www.runoob.com/json/json-tutorial.html)
- [.jsonl,jsonlines比json格式更好用的文件格式](https://blog.csdn.net/ykf173/article/details/107351057)
24 changes: 23 additions & 1 deletion 1earn/Integrated/Linux/Power-Linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,8 @@ tmux list-keys # 列出所有快捷键,及其对应的 Tmux 命
```bash
tmux new -s test
tmux new-session -s 'test'

tmux new-session -s 'test' -d # 使用 -s 开关指定会话的名字为 test,使用 -d 开关使得创建后立即与其脱离。
```

**分离会话**
Expand Down Expand Up @@ -498,6 +500,10 @@ tmux save-buffer output.log
tmux send-keys -t test.1 ls Enter
```

**tmux 下使用 rz/sz 卡死的解决方案**

按住Ctrl键, 再按五次x键 (强行终断传输)

---

## 网络服务
Expand Down Expand Up @@ -1202,7 +1208,7 @@ use_compression = true

[DSM]
type = tcp
local_ip = 192.168.1.1 # 群晖 NAS 在局域网中的内网 IP
local_ip = 192.168.1.1 # NAS 在局域网中的内网 IP
local_port = 5000
remote_port = 10002
```
Expand Down Expand Up @@ -6748,6 +6754,22 @@ rm -r build
ln -s /usr/src/kernels/3.10.0-1160.6.1.el7.x86_64/ build
```
**error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory**
```bash
apt install libnss3-dev
```
**error while loading shared libraries: libdrm.so.2: cannot open shared object file: No such file or directory**
```bash
apt install libdrm-dev
```
**linux-/usr/lib64/libm.so.6: version `GLIBC_2.29' not found**
安装glibc-2.29
---
### LuaJIT
Expand Down
5 changes: 4 additions & 1 deletion 1earn/Integrated/Linux/Speed-Linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -1087,7 +1087,10 @@ tar -xzvf xxx.tgz # 如果是 gzip 格式,也支持用 tar 解压

**主机名**
```bash
hostname # 查看本机的hostname
hostname # 查看本机的主机名
hostname test # 设置主机名为 test (临时,重启失效)
hostnamectl # 查看本机的主机名
hostnamectl set-hostname test # 设置主机名为 test (长期生效)
```

**IP 地址**
Expand Down
17 changes: 17 additions & 0 deletions 1earn/Integrated/Linux/实验/openssl.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,23 @@ openssl rand -base64 16

---

## 升级openssl版本

- https://www.openssl.org/source/

以 openssl-1.1.1q 为例
```bash
wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz
tar -zxvf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q/
./config
make && make install
```

新开启一个 bash 输入 `openssl version` 查看 openssl 版本

---

## Source & Reference

- https://blog.csdn.net/Michaelwubo/article/details/113736166
Expand Down
82 changes: 75 additions & 7 deletions 1earn/Integrated/Linux/实验/terraform.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

---

**Error: Error acquiring the state lock**

```
terraform force-unlock -force xxxxx-xxxx-xxx-xxxxx
```

```
ps aux | grep terraform
sudo kill -9 <process_id>
```

---

## vultr providers

### vps
Expand Down Expand Up @@ -89,7 +102,7 @@ terraform destroy

### ecs

- https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/auto_provisioning_group
- https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance

**main.tf**
```conf
Expand Down Expand Up @@ -221,7 +234,7 @@ terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "1.171.0"
version = "1.190.0"
}
}
}
Expand Down Expand Up @@ -363,9 +376,25 @@ terraform destroy

---

## Tips
## huaweiyun providers

### ecs

- https://registry.terraform.io/providers/huaweicloud/huaweicloud/latest/docs/resources/compute_instance

---

## aws providers

### ec2

- https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

---


## 随机密码

**随机密码**
```conf
# main.tf
Expand All @@ -382,12 +411,14 @@ resource "aws_db_instance" "example" {
}
```

**json 输出**
## json 输出

```
terraform output -json
```

**变量**
## 变量

- https://lonegunmanb.github.io/introduction-terraform/3.3.%E8%BE%93%E5%85%A5%E5%8F%98%E9%87%8F.html

```conf
Expand All @@ -412,7 +443,7 @@ EOF
terraform apply -var="test_ip=1.14.5.14"
```

**插件缓存**
## 插件缓存

- linux
```
Expand All @@ -425,3 +456,40 @@ terraform apply -var="test_ip=1.14.5.14"
```
plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"
```

## providers 镜像

- https://juejin.cn/post/7103449491524550664

terraform v0.13 或者更高的版本中提供了一个 providers mirror 命令,可以下载当前配置的 provider 到本地的目录中。然后可以通过下载的目录配置 network mirror 等。

在命令行配置文件可以定义 provider_installation 块配置来修改 terraform 默认的插件安装行为。所以可以指定为从本地/network mirror 安装初始化 provider。

在模版的目录下执行下载命令
```
terraform.exe providers mirror "."
```

下载完成后会生成类似一个如下结构的目录,这个目录结构可以直接当作本地filesystem mirror使用。如果要配置network mirror,使用此目录结构为站点目录。
```
└─registry.terraform.io
├─hashicorp
│ └─local
└─tencentcloudstack
└─tencentcloud
```

将下载的目录移动到 /tmp

编辑 ~/.terraformrc
```
provider_installation {
filesystem_mirror {
path = "/tmp/terraform/mirror"
}
}
```

此时再次 init,就会从 /tmp 去加载 providers

对于不同的 providers ,需要手动去一个个下载,然后移动到指定目录下,虽然麻烦,但是可以有效提高init的速度.
Loading

0 comments on commit 18ff490

Please sign in to comment.