nfs
NFS (Network File System)在混合云与分布式架构横行的今天,NFS 依然是企业内网文件共享、虚拟化存储及容器持久化卷的“中流砥柱”。 一、 基础理论:揭秘 NFS 的底层逻辑1. NFS 概述与发展史NFS(Network File System)由 Sun Microsystems 于 1984 年开发,其核心目标是让用户像访问本地磁盘一样访问远程服务器上的文件。 主要用途:跨平台文件共享、集中式数据管理、无盘工作站、集群共享存储。 2. 工作原理与核心组件NFS 是基于 RPC (Remote Procedure Call) 机制实现的。 组件名称 描述 RPC (rpcbind) 关键的中转站。NFS 启动时向 rpcbind 注册端口,客户端通过它获取 NFS 服务端口。 nfsd NFS 核心守护进程,负责处理客户端的文件读写请求。 mountd 负责处理客户端的挂载请求,验证权限并提供文件句柄。 lockd 实现文件锁机制(NLM),防止多个客户端同时写入冲突。 statd 状态报告服务,在崩溃重启后帮助恢复锁定状...
proftpd
ProFTPD,首先要理解它的设计哲学:高度模块化和类 Apache 的配置风格。 安装部署 Debian/Ubuntu: 1sudo apt install proftpd-basic CentOS: 1yum install proftpd 一、 ProFTPD 的核心作用ProFTPD (Professional FTP Daemon) 的主要职责是提供安全、可控的文件传输。 多身份验证支持:可以支持系统用户(/etc/passwd)和虚拟用户(不占用系统账号,安全性极高)。 精细权限控制:可以针对特定 IP、特定时间段或特定指令(如禁止删除、禁止下载)进行限制。 沙盒化(Chroot):将用户锁定在指定目录,无法跳出查看系统其他文件。 二、 核心命令与工具链需要熟练操作以下工具: 1. 运行管理 proftpd -t: 配置自检。修改配置后必跑,防止因语法错误导致服务宕机。 proftpd -v: 查看版本及编译时包含的模块。 **proftpd -V (大写)**:显示编译时的详细参数,包括安装了哪些模块(如 mod_lang, mod_auth_fi...
vsftpd
FTP 的工作模式,这是解决后续所有“连接超时”问题的关键。 FTP 的双通道机制: 与 HTTP 不同,FTP 使用两个并行连接: 控制连接(端口 21): 负责发送指令(登录、列出文件)。 数据连接(随机端口): 负责实际的文件传输。 主动模式 (Active) vs. 被动模式 (Passive): 主动模式: 服务器主动连接客户端。在现代互联网(客户端多在防火墙后)环境下经常失效。 被动模式: 客户端请求服务器开放一个随机端口进行连接。这是生产环境的标配,也是后续配置的重点。 vsftpd 的设计哲学: 名字中的 “vs” 代表 Very Secure。它通过进程隔离(Privilege Separation)和最简权限原则,确保即使一个连接被破解,攻击者也无法获得系统 root 权限。 vsftpd 实战全手册一、 基础安装与环境准备1. 安装根据不同的 Linux 发行版选择对应的包管理器: Ubuntu/Debian: sudo apt update && sudo apt install vsftpd db-util Ce...
bash之jq处理json
一、 核心基础:精准定位 (Selectors)与 JSON 交互的起点,解决“数据在哪”的问题。 **. (Identity)**:最基础的过滤器,输出原始 JSON 且自动格式化(Pretty-print)。 **.field (Object Access)**:通过键名获取值。如果键名包含特殊字符(如横线),需使用引号:."user-name"。 **.parent.child (Chaining)**:通过点号链接,深度进入嵌套结构。 **.[] (Array/Object Iterator)**: 用于数组时:将数组拆解为一个个独立的元素流。 用于对象时:返回对象所有属性的值流(不含键名)。 **.[index] (Index Access)**:获取数组特定位置元素,支持负数索引(如 .[-1] 获取末尾元素)。 **.[start:end] (Slicing)**:对数组或字符串进行切片,遵循左闭右开原则。 假设有一个名为 data.json 的文件: 12345{ "user": "b...
journalctl
journalctljournalctl 是用于查询和显示 Systemd 日志守护进程 (journald) 收集的日志的工具。是 systemd 系统中的核心日志管理工具,它和传统的 syslog、/var/log/messages 不同,采用 二进制日志数据库,配合 systemd 的服务管理,日志管理更强大 属于 systemd-journald 服务的前端工具,用来 查询、过滤、管理 systemd 日志。 日志来源: 内核(dmesg 替代品) systemd 服务单元(unit) 标准输出 / 标准错误(systemd 管理的服务自动收集) Syslog API(兼容传统应用日志) 基础用法 journalctl: 显示所有收集到的日志(从最旧到最新)。 journalctl -r: 倒序显示所有日志(从最新到最旧)。 journalctl -f: 实时跟踪新生成的日志。 journalctl -e 跳到日志末尾(类似 tail -f) journalctl -n 50 查看最近 50 行 按时间过滤 -b 或 --boot: 显示本次...
Network configuration and management
ipip 命令是 Linux 中用于网络配置和管理的核心工具,它取代了传统的 ifconfig、route 和 arp 等命令。ip 命令结构统一、功能强大且效率更高。 ip 命令的基本语法格式为: Bash 1ip [ OPTIONS ] OBJECT { COMMAND | help } 其中: **OBJECT**:指定要操作的网络对象,这是分类的核心。 **COMMAND**:指定对该对象执行的具体操作(如 add、del、show、flush)。 下面是 ip 命令的主要对象分类及详细功能介绍: 1. ip link:网络设备(接口)管理ip link 用于管理网络设备的属性,例如查看接口状态、配置 MAC 地址、启用/禁用接口等。 命令分类 常用命令 (简写) 功能描述 显示 ip link show (ip l) 显示所有网络设备的简要信息。 显示详细 ip -s link show (ip -s l) 显示更详细的统计信息 (如收发包计数、错误)。 启用/禁用 ip link set dev et...
openssl
一、 加密基础与原理1. 加密技术分类 对称加密 (Symmetric Cryptography) 原理:加密和解密使用同一个密钥。 特点:速度快,适用于大量数据传输。 常见算法:AES, DES, 3DES。 非对称加密 (Asymmetric Cryptography / Public-Key Cryptography) 原理:使用一对密钥,即公钥 (Public Key) 和**私钥 (Private Key)**。公钥加密的内容只能用对应的私钥解密,反之亦然。 特点:速度慢,用于密钥协商和数字签名。 常见算法:RSA, ECC。 哈希/散列函数 (Hash Function) 原理:将任意长度输入通过算法转换为固定长度输出(哈希值/摘要)。 特点:不可逆;输入微小变化会导致输出巨大变化;用于数据完整性校验。 常见算法:SHA-256, MD5(已不推荐用于安全用途)。 2. 混合加密机制 目的: 结合非对称加密的安全性和对称加密的效率。 流程: 先用非对称加密协商/传输一个对称密钥 (Session Key),后续的数...
shell color
在 Bash shell 中,颜色通常通过 ANSI 转义序列(Escape Sequences)实现,用于改变终端文本的前景色、背景色或样式(如加粗、斜体等)。以下是 Bash shell 中颜色的详细讲解: 1. ANSI 转义序列基础ANSI 转义序列以 \033[ 或 \e[ 开头,后面跟着一系列数字和字母,用于设置颜色和样式,最后以 m 结束。例如: 1echo -e "\033[31mHello, World!\033[0m" \033[31m:将文本设置为红色。 \033[0m:重置颜色和样式,恢复默认。 格式: 1\033[<样式>;<前景色>;<背景色>m <样式>:控制文本样式(如加粗、下划线)。 <前景色>:设置文本颜色。 <背景色>:设置背景颜色(可选)。 2. 颜色代码前景色(文本颜色) 颜色 代码 说明 黑色 30 Black 红色 31 Red 绿色 32 Green 黄色 33 Yellow 蓝色 34 Blue 紫...
fstab
fstab 是 file system table 的缩写,即文件系统表。 它是一个纯文本文件,位于 /etc/fstab。它的主要作用是记录系统在启动时需要自动挂载的文件系统。 每当系统启动时,init 或 systemd 都会读取 /etc/fstab 文件的内容,并按照其中定义的规则,自动将硬盘分区、网络文件系统或其它存储设备挂载到指定的目录。/etc/fstab 是 Linux/Unix 系统的文件系统静态信息表,它决定了系统启动时如何挂载分区、设备、远程文件系统。 定义 设备 → 挂载点 → 文件系统类型 → 挂载选项。 可以控制: 磁盘分区挂载 网络文件系统(NFS、CIFS、GlusterFS 等) 伪文件系统(tmpfs、proc、sysfs 等) 特殊挂载(swap、UUID 绑定) fstab 文件格式fstab 文件中的每一行都代表一个需要挂载的文件系统,并且由六个字段组成。每个字段之间用空格或 Tab 键分隔。 1<device> <mount point> <fs_type> <op...
xargs
什么是 xargs?xargs 的全称是 extend args,即“扩展参数”。它的核心功能是: 将标准输入中的数据,转换成命令行参数,然后传递给另一个命令。 为什么需要它?因为大多数命令(如 echo, rm, cp)不能直接从标准输入(stdin)接收参数。例如,你不能直接 echo "file1.txt" | rm。xargs 的出现,正是为了弥补这个不足。 xargs 的基本用法xargs 的基本语法是: 1some_command | xargs another_command some_command 的输出会作为 another_command 的参数。 实例 1:批量删除文件 假设你想要删除所有 *.bak 文件。 1find . -name "*.bak" | xargs rm 解析: find . -name "*.bak":这个命令会找到当前目录下所有 .bak 结尾的文件,并将它们的文件名输出到标准输出,每行一个。 |:管道,将 find 的输出导向 xargs。 xargs rm:x...
