Levon's Blog

微信: L6241425

tmux 是一款优秀的终端复用软件,它比 Screen 更加强大。tmux 之所以受人们喜爱,主要得益于以下功能:

  • 智能分屏(split):虽然 iTerm2 也提供了横向和竖向分屏功能,但 iTerm2 的分屏相对独立——新开的 pane 是全新的会话,不会自动进入当前目录,也不会继承当前的 SSH 连接状态。这意味着如果你通过 SSH 连接到远程服务器,在 iTerm2 中新开 pane 时,需要重新执行 SSH 登录流程。而 tmux 的分屏功能则更加智能:在 tmux 中新开的 pane 会自动继承当前的工作目录,如果是在远程服务器上运行 tmux,所有的 pane 都在同一个 SSH 会话中,无需重复登录。这种设计让工作流程更加顺畅高效。
  • 会话保持(attach/detach):tmux 最强大的功能之一是会话管理。即使关闭终端窗口,tmux 会话仍在后台运行,你可以随时重新连接(attach)到之前的会话,所有的窗口、pane 和正在运行的程序都保持原样。这对于 SSH 远程工作尤其重要:
    • 网络中断不会影响正在运行的任务
    • 可以安全地断开连接,任务继续在服务器后台执行
    • 支持多地办公,在任何地方都能接续之前的工作状态
    • 长时间运行的任务(如模型训练、数据处理)可以放心执行,无需担心连接中断

这些特性使 tmux 成为开发者和系统管理员的必备工具。

阅读全文 »

1. 从0到100万用户的扩展

1.1 考虑因素

  • 因此对于大型应用来说,采用横向扩展更合适一些
  • 采用负载均衡器(nginx, k8s, istio等)
  • 数据库主从复制,数据库扩展
  • 使用缓存,CDN
  • 让网络层无状态,方便扩展
  • 多数据中心
  • 使用消息队列
  • 记录日志、收集指标与自动化
46549_33_2
阅读全文 »

1. 有无 / 结尾

在location中匹配的url最后有无/结尾,指的是模糊匹配与精确匹配的问题
在proxy_pass中代理的url最后有无/结尾,指的是在proxy_pass 指定的url后要不要加上location匹配的url的问题

1.1 localtion 加不加 /

  • location /abc/def

    可以匹配/abc/defghi的请求,也可以匹配/abc/def/ghi ……

  • location /abc/def/

    不能匹配/abc/defghi的请求,只能精确匹配 /abc/def/ghi这样的请求

阅读全文 »

经常用的 bearychat 凉了(估计受疫情影响), 还有国内的瀑布IM也凉了, 不得不选用一个新的企业协作工具.

那么在国内为什么不选用钉钉, 飞书, 企业微信? 哈哈哈你懂的. slack 是谁? 算是前面的标杆

阅读全文 »

1. 安装

1.1 安装前要求

Master服务器要2GB RAM 和 2个 CPU, docker和 k8s 在 master 和 node 节点都需要安装.

阅读全文 »

Kubernetes中的大部分概念Node、Pod、Replication Controller、Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过kubectl工具(API调用)执行增、删、改、查等操作并将其保存在etcd中持久化存储。

从这个角度来看,kubernetes其实是一个高度自动化的资源控制系统,通过跟踪对比etcd库里保存的“资源期望状态”与当前环境中的“实际资源状态”的差异来实现自动控制和自动纠错的高级功能。

阅读全文 »

好久没写golang相关的blog了, 记录一些常见的golang技巧。

1. 不影响函数调用, 增加参数

先看以下函数调用:

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import "fmt"

func ExecUser(name string, age int) {
fmt.Println("name:", name, "age:", age)
}

func main() {
ExecUser("levonfly", 9)
}

// name: levonfly age: 9
阅读全文 »

Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf

阅读全文 »
0%