博客园 - 思此狂
uuid:7d267088-5232-4821-9010-8cd5fdd6cd4f;id=1075977
2022-10-08T05:10:30Z
思此狂
https://www.cnblogs.com/jkklearn/
feed.cnblogs.com
https://www.cnblogs.com/jkklearn/p/16768631.html
packer demo - 思此狂
ks 应答文件demo install text reboot lang en_US.UTF-8 keyboard us timezone --utc Etc/UTC rootpw --plaintext 'kangwen12#$' zerombr autopart --type=plain --f
2022-10-08T05:06:00Z
2022-10-08T05:06:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】ks 应答文件demo install text reboot lang en_US.UTF-8 keyboard us timezone --utc Etc/UTC rootpw --plaintext 'kangwen12#$' zerombr autopart --type=plain --f <a href="https://www.cnblogs.com/jkklearn/p/16768631.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/16464214.html
gin demo - 思此狂
gin demo 演示参数校验 package main import ( "fmt" "io/ioutil" "net/http" "github.com/gin-gonic/gin" // "context" ) type Userinfo struct { Username string `f
2022-07-10T14:01:00Z
2022-07-10T14:01:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】gin demo 演示参数校验 package main import ( "fmt" "io/ioutil" "net/http" "github.com/gin-gonic/gin" // "context" ) type Userinfo struct { Username string `f <a href="https://www.cnblogs.com/jkklearn/p/16464214.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/16464209.html
context取消任务demo - 思此狂
一个基于 gin 的demo ,支持 创建任务, 停止(取消)任务 -》基于 context cancle, 查询任务 传递任务id 基于 context value package main import ( "fmt" "math/rand" "strconv" "context" "time"
2022-07-10T13:58:00Z
2022-07-10T13:58:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】一个基于 gin 的demo ,支持 创建任务, 停止(取消)任务 -》基于 context cancle, 查询任务 传递任务id 基于 context value package main import ( "fmt" "math/rand" "strconv" "context" "time" <a href="https://www.cnblogs.com/jkklearn/p/16464209.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/16156933.html
go 执行系统命令 - 思此狂
文档: go 执行命令的5种方法 https://zhuanlan.zhihu.com/p/296409942 package main import ( "bytes" "fmt" "log" "os/exec" ) var cmd = ` echo hello echo world >&2 ex
2022-04-17T11:26:00Z
2022-04-17T11:26:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】文档: go 执行命令的5种方法 https://zhuanlan.zhihu.com/p/296409942 package main import ( "bytes" "fmt" "log" "os/exec" ) var cmd = ` echo hello echo world >&2 ex <a href="https://www.cnblogs.com/jkklearn/p/16156933.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/15678003.html
new & make - 思此狂
package main import "fmt" // 执行下面的代码会引发panic,为什么呢? 在Go语言中对于引用类型的变量, // 我们在使用的时候不仅要声明它,还要为它分配内存空间,否则我们的值就没办法存储。 // 而对于值类型的声明不需要分配内存空间,是因为它们在声明的时候已经默认分配
2021-12-11T17:32:00Z
2021-12-11T17:32:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】package main import "fmt" // 执行下面的代码会引发panic,为什么呢? 在Go语言中对于引用类型的变量, // 我们在使用的时候不仅要声明它,还要为它分配内存空间,否则我们的值就没办法存储。 // 而对于值类型的声明不需要分配内存空间,是因为它们在声明的时候已经默认分配 <a href="https://www.cnblogs.com/jkklearn/p/15678003.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/15677998.html
值传递和引用传递 - 思此狂
package main import "fmt" func addtest1(x,y int) int { x = x + 1 y = y + 1 return x + y } func addtest2(x, y *int) int { *x = *x + 1 *y = *y + 1 retur
2021-12-11T17:28:00Z
2021-12-11T17:28:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】package main import "fmt" func addtest1(x,y int) int { x = x + 1 y = y + 1 return x + y } func addtest2(x, y *int) int { *x = *x + 1 *y = *y + 1 retur <a href="https://www.cnblogs.com/jkklearn/p/15677998.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/15144459.html
shell的文件锁操作 - 思此狂
flock { flock -n 3 [ $? -eq 1 ] && echo "anoter prossess is running" && exit 1 sleep 10 echo helloworld11 sleep 3 echo helloworld22 } 3>/root/1.lock
2021-08-15T11:25:00Z
2021-08-15T11:25:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】flock { flock -n 3 [ $? -eq 1 ] && echo "anoter prossess is running" && exit 1 sleep 10 echo helloworld11 sleep 3 echo helloworld22 } 3>/root/1.lock <a href="https://www.cnblogs.com/jkklearn/p/15144459.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/15077579.html
systemd target - 思此狂
Runlevel 0== poweroff.target Runlevel 1== rescue.target Runlevel 2== multi-user.target Runlevel 3== multi-user.target Runlevel 4== multi-user.target R
2021-07-29T15:08:00Z
2021-07-29T15:08:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】Runlevel 0== poweroff.target Runlevel 1== rescue.target Runlevel 2== multi-user.target Runlevel 3== multi-user.target Runlevel 4== multi-user.target R <a href="https://www.cnblogs.com/jkklearn/p/15077579.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14290375.html
关于网络中断 - 思此狂
阿里云ECS 配置网卡多队列 提升中断处理性能 https://help.aliyun.com/document_detail/52559.html?spm=a2c4g.11174283.6.990.b2e552fekaIQx9 关于亲和性设置 https://www.cnblogs.com/bam
2021-01-17T13:49:00Z
2021-01-17T13:49:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】阿里云ECS 配置网卡多队列 提升中断处理性能 https://help.aliyun.com/document_detail/52559.html?spm=a2c4g.11174283.6.990.b2e552fekaIQx9 关于亲和性设置 https://www.cnblogs.com/bam <a href="https://www.cnblogs.com/jkklearn/p/14290375.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14233162.html
python对象判断isintance/is等 - 思此狂
isintance/type 的区别尽量使用isintance 内置的 type() 函数可以用来查询变量所指的对象类型。isinstance(1, int) 区别: class A: pass class B(A): pass isinstance(A(), A) # returns True t
2021-01-04T15:30:00Z
2021-01-04T15:30:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】isintance/type 的区别尽量使用isintance 内置的 type() 函数可以用来查询变量所指的对象类型。isinstance(1, int) 区别: class A: pass class B(A): pass isinstance(A(), A) # returns True t <a href="https://www.cnblogs.com/jkklearn/p/14233162.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14227358.html
上下文管理contextlib - 思此狂
contextmanager from contextlib import contextmanager class Query(object): def __init__(self, name): self.name = name def query(self): print('Query inf
2021-01-03T14:55:00Z
2021-01-03T14:55:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】contextmanager from contextlib import contextmanager class Query(object): def __init__(self, name): self.name = name def query(self): print('Query inf <a href="https://www.cnblogs.com/jkklearn/p/14227358.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14223964.html
让对象支持上下文管理 - 思此狂
让我们的对象支持上下文管理(with语句) 为了让一个对象兼容 with 语句,你需要实现 __enter__() 和 __exit__() 方法 demo: class WithTest: def __enter__(self): print("enter") return self #这里需要r
2021-01-02T13:16:00Z
2021-01-02T13:16:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】让我们的对象支持上下文管理(with语句) 为了让一个对象兼容 with 语句,你需要实现 __enter__() 和 __exit__() 方法 demo: class WithTest: def __enter__(self): print("enter") return self #这里需要r <a href="https://www.cnblogs.com/jkklearn/p/14223964.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14223906.html
线程锁lock&rlock - 思此狂
首先关于锁: 1 使用锁会影响性能 2 锁可能谁导致死锁 比如: 线程A acquire a 等待b 线程B acquire b 等待a 这种资源竞争就会导致死锁 【Lock】 lock 不能连续获取两次(死锁了), 因为第二个锁会一直等待第一个释放 【Rlock】 可重入锁 Rlock 在同一个线
2021-01-02T12:56:00Z
2021-01-02T12:56:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】首先关于锁: 1 使用锁会影响性能 2 锁可能谁导致死锁 比如: 线程A acquire a 等待b 线程B acquire b 等待a 这种资源竞争就会导致死锁 【Lock】 lock 不能连续获取两次(死锁了), 因为第二个锁会一直等待第一个释放 【Rlock】 可重入锁 Rlock 在同一个线 <a href="https://www.cnblogs.com/jkklearn/p/14223906.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14223846.html
threading.local - 思此狂
import threading import time def music(a,b): fo = open("test.txt1", "w") fo.write(a+b) fo.close() def move(c,d): fo = open("test.txt2", "w") fo.write(
2021-01-02T12:37:00Z
2021-01-02T12:37:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】import threading import time def music(a,b): fo = open("test.txt1", "w") fo.write(a+b) fo.close() def move(c,d): fo = open("test.txt2", "w") fo.write( <a href="https://www.cnblogs.com/jkklearn/p/14223846.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14161824.html
threading Event - 思此狂
通过threading.Event()可以创建一个事件管理标志,该标志(event)默认为False,event对象主要有四种方法可以调用: event.wait(timeout=None):调用该方法的线程会被阻塞,如果设置了timeout参数,超时后,线程会停止阻塞继续执行; event.set
2020-12-19T14:48:00Z
2020-12-19T14:48:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】通过threading.Event()可以创建一个事件管理标志,该标志(event)默认为False,event对象主要有四种方法可以调用: event.wait(timeout=None):调用该方法的线程会被阻塞,如果设置了timeout参数,超时后,线程会停止阻塞继续执行; event.set <a href="https://www.cnblogs.com/jkklearn/p/14161824.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14050634.html
python中的eval 和 exec 和 execfile - 思此狂
#eval 函数用来计算python表达式并返回结果#exec 可以执行动态的python代码,不返回结果 def hello(): print("hello world") eval("hello()") 输出 hello world exec("hello()") 输出 hello world#
2020-11-27T14:12:00Z
2020-11-27T14:12:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】#eval 函数用来计算python表达式并返回结果#exec 可以执行动态的python代码,不返回结果 def hello(): print("hello world") eval("hello()") 输出 hello world exec("hello()") 输出 hello world# <a href="https://www.cnblogs.com/jkklearn/p/14050634.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14017112.html
cloud-init 常见问题 - 思此狂
1 日志文件都放在了哪里 1 /var/log/cloud-init.log2 服务的输出 systemd 启动的系统可以查看 journalctl 日志 sysvinit/upstart 启动的系统应该在 /var/log/cloud-init-output.log 里,这块我需要确认下 如何收集
2020-11-21T12:20:00Z
2020-11-21T12:20:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】1 日志文件都放在了哪里 1 /var/log/cloud-init.log2 服务的输出 systemd 启动的系统可以查看 journalctl 日志 sysvinit/upstart 启动的系统应该在 /var/log/cloud-init-output.log 里,这块我需要确认下 如何收集 <a href="https://www.cnblogs.com/jkklearn/p/14017112.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/14012820.html
systemd - 思此狂
systemd-cgls 指令,根据 cgroup 将运行的进程分组来同时实现两者。 要显示您系统中的全部 cgroup 层级systemd-cgls 查看 memory 资源管控器的 cgroup 树systemd-cgls memorysystemd-cgls cpusystemd-cgls d
2020-11-20T12:15:00Z
2020-11-20T12:15:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】systemd-cgls 指令,根据 cgroup 将运行的进程分组来同时实现两者。 要显示您系统中的全部 cgroup 层级systemd-cgls 查看 memory 资源管控器的 cgroup 树systemd-cgls memorysystemd-cgls cpusystemd-cgls d <a href="https://www.cnblogs.com/jkklearn/p/14012820.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/13980705.html
cloud-init 的命令行 - 思此狂
各服务对应的 cloud-init 执行的命令行 cloud-init-local.service : cloud-init init --local cloud-init.service: cloud-init init cloud-config.service: cloud-init modul
2020-11-15T13:48:00Z
2020-11-15T13:48:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】各服务对应的 cloud-init 执行的命令行 cloud-init-local.service : cloud-init init --local cloud-init.service: cloud-init init cloud-config.service: cloud-init modul <a href="https://www.cnblogs.com/jkklearn/p/13980705.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jkklearn/p/13979339.html
cloud-init 基本介绍 - 思此狂
cloud-init 主要是为了初始化实例信息,用户在购买实例时配置的实例密码,Hostname,user-data等,及实例启动时系统配置,如 repo源,ssh认证密钥等。 cloud-init 在启动时分5个阶段执行,对应于系统中服务分别是 1 Generator 2 Local 对应系统服务
2020-11-15T13:30:00Z
2020-11-15T13:30:00Z
思此狂
https://www.cnblogs.com/jkklearn/
【摘要】cloud-init 主要是为了初始化实例信息,用户在购买实例时配置的实例密码,Hostname,user-data等,及实例启动时系统配置,如 repo源,ssh认证密钥等。 cloud-init 在启动时分5个阶段执行,对应于系统中服务分别是 1 Generator 2 Local 对应系统服务 <a href="https://www.cnblogs.com/jkklearn/p/13979339.html" target="_blank">阅读全文</a>