文章851
标签121
分类10

Linux 快速复制大量小文件方法 nc+tar

在 Linux 中,使用 nc(netcat)和 tar 可以高效地复制大量小文件。这种方法适用于网络传输和本地复制。以下是详细步骤和示例。

使用 nctar 复制小文件

1. 准备工作

确保目标系统上安装了 tarnetcat。大部分 Linux 发行版默认安装了这两个工具。

2. 在接收方(目标机器)上监听

在目标机器上,使用 nc 监听一个端口,并通过 tar 解压接收到的数据。假设您使用的是端口 12345:

nc -l -p 12345 | tar xvf -

3. 在发送方(源机器)上发送数据

在源机器上,使用 tar 将要复制的文件打包并通过 nc 发送到目标机器的 IP 地址。假设您要复制的文件在 /path/to/files 目录:

tar cf - -C /path/to/files . | nc <目标机器的IP地址> 12345

4. 示例步骤

4.1 在目标机器上

  1. 打开终端,运行以下命令来监听端口:

    nc -l -p 12345 | tar xvf -

4.2 在源机器上

  1. 打开另一个终端,运行以下命令来发送文件:

    tar cf - -C /path/to/files . | nc <目标机器的IP地址> 12345

5. 注意事项

  • 防火墙配置:确保目标机器的防火墙允许通过指定的端口(如 12345)进行通信。
  • 网络安全:使用 nc 进行数据传输时,数据没有加密。如果在不安全的网络上传输敏感数据,考虑使用 ssh 等安全协议。
  • 文件权限:在目标机器上接收到的文件将保留源文件的权限和结构。

查询Mongo 用的是什么引擎

MongoDB 使用的是 WiredTiger 存储引擎,这是其默认的存储引擎。WiredTiger 在设计上注重性能和压缩,支持多线程并发和事务,适合高负载和多用户环境。

1. MongoDB 存储引擎概述

1.1 WiredTiger

  • 默认存储引擎:从 MongoDB 3.2 版本开始,WiredTiger 成为默认的存储引擎。
  • 特性

    • 高性能:通过多线程和并发控制提高读写性能。
    • 数据压缩:支持多种压缩算法(如 Snappy 和 zlib),可以减少存储空间。
    • 事务支持:支持 ACID 事务,允许在多个文档之间进行原子操作。

1.2 MMAPv1

  • 早期存储引擎:在 MongoDB 3.0 之前,MMAPv1 是默认的存储引擎。
  • 特性

    • 简单性:基于内存映射文件,易于理解。
    • 缺点:不支持并发写入,性能较差,且不支持事务。

1.3 其他存储引擎

在 MongoDB 中,还可以使用其他存储引擎,例如:

  • In-Memory Storage Engine:专为需要极高性能的应用设计,数据存储在内存中。
  • Encrypted Storage Engine:提供数据加密功能,适合需要安全性的场景。

2. 如何查看当前使用的存储引擎

您可以通过 MongoDB shell 查询当前数据库使用的存储引擎:

db.runCommand({ getParameter: 1, storageEngine: 1 })

这将返回当前数据库的存储引擎信息。

Supervisor 进程子进程管理

之前使用 Supervisord 守护 swoole 服务 问题
restart 服务后 master 进程重启了 并拉起新的worker 进程, 但是老的worker 进程并没有kill
我都是通过 shell 脚本实现子进程kill 的工作

就在刚才我同事的服务跪了, 我俩总结了原因 并告诉如下配置, 可以控制子进程

只需要在每个任务配置, 就可以对子进程进程管理.

stopasgroup=true;
killasgroup=true;

Jenkins 配合 Supervisor 上线 swoole 服务 一定要保证所有swoole进程kill 否则由于 Jenkins 版本控制分配不同目录 导致worker 重启后 include 文件 加载失败

学费很贵 2小时 300美刀 记录下

MySQL 查询数据导出为 INSERT 格式文件

在 MySQL 中,您可以将查询结果导出为 INSERT 语句格式的文件。这可以通过多种方法实现,以下是几种常见的方法。

1. 使用 mysqldump

mysqldump 工具可以导出整个数据库或表,并生成 INSERT 语句。

导出整个数据库

mysqldump -u username -p --no-create-info --skip-triggers database_name > output.sql

导出特定表

mysqldump -u username -p --no-create-info --skip-triggers database_name table_name > output.sql

选项说明

  • -u username:指定数据库用户名。
  • -p:提示输入密码。
  • --no-create-info:不生成 CREATE TABLE 语句。
  • --skip-triggers:不导出触发器。

2. 使用 SQL 查询和 INTO OUTFILE

如果您想导出特定查询的结果,可以使用 SELECT ... INTO OUTFILE 语句。

示例

SELECT 
    CONCAT('INSERT INTO table_name (column1, column2) VALUES (', 
           QUOTE(column1), ', ', 
           QUOTE(column2), ');') AS insert_statement
FROM 
    your_table
INTO OUTFILE '/path/to/output.sql'
FIELDS TERMINATED BY '' 
LINES TERMINATED BY '\n';

说明

  • CONCAT:构建 INSERT 语句。
  • QUOTE:确保字符串值正确转义。
  • INTO OUTFILE:将结果输出到指定文件。
  • /path/to/output.sql:指定导出的文件路径。

注意事项

  • MySQL 服务器需要有写权限到指定的目录。
  • 输出文件的路径必须是服务器上的路径,而不是客户端。

3. 使用 GUI 工具

如果您更喜欢图形界面,可以使用一些数据库管理工具,比如:

3.1 phpMyAdmin

  1. 登录到 phpMyAdmin。
  2. 选择要导出的数据库或表。
  3. 点击“导出”选项。
  4. 选择“自定义”导出方法。
  5. 在输出格式中选择“SQL”,并确保包含 INSERT 语句。

3.2 MySQL Workbench

  1. 打开 MySQL Workbench。
  2. 连接到数据库。
  3. 在左侧导航栏中右键点击数据库或表。
  4. 选择“Table Data Export Wizard”。
  5. 按照向导步骤选择导出选项。

Linux查看实时带宽流量情况

在 Linux 系统中,您可以使用多种工具来查看实时的带宽流量情况。以下是一些常用的方法和工具:

1. iftop

iftop 是一个实时流量监控工具,可以显示网络接口的带宽使用情况。

安装

在 Debian/Ubuntu 系统上:

sudo apt install iftop

在 CentOS/RHEL 系统上:

sudo yum install iftop

使用

运行 iftop,指定要监控的网络接口(例如 eth0):

sudo iftop -i eth0

功能

  • 显示实时流量。
  • 可以按源或目标 IP 排序。
  • 支持过滤特定 IP 或端口。

2. nload

nload 是一个简单的实时网络流量监控工具,可以显示流入和流出的带宽使用情况。

安装

在 Debian/Ubuntu 系统上:

sudo apt install nload

在 CentOS/RHEL 系统上:

sudo yum install nload

使用

运行 nload,指定要监控的网络接口:

nload eth0

功能

  • 显示实时流量图表。
  • 显示流入和流出的带宽使用情况。
  • 支持多个网络接口的监控。

3. vnstat

vnstat 是一个网络流量监控工具,可以记录网络流量并生成统计信息。

安装

在 Debian/Ubuntu 系统上:

sudo apt install vnstat

在 CentOS/RHEL 系统上:

sudo yum install vnstat

使用

首先,启动 vnstat 服务:

sudo systemctl start vnstat
sudo systemctl enable vnstat

然后,查看实时流量:

vnstat -l -i eth0

功能

  • 提供历史流量统计。
  • 显示实时流量。
  • 支持多个网络接口。

4. bmon

bmon 是一个 Bandwidth Monitor 工具,提供实时的带宽监控和统计。

安装

在 Debian/Ubuntu 系统上:

sudo apt install bmon

在 CentOS/RHEL 系统上:

sudo yum install bmon

使用

运行 bmon

bmon

功能

  • 显示实时流量和统计信息。
  • 支持图形化显示。
  • 可以监控多个接口。

5. iptraf

iptraf 是一个交互式的网络流量监控工具,提供详细的流量统计。

安装

在 Debian/Ubuntu 系统上:

sudo apt install iptraf

在 CentOS/RHEL 系统上:

sudo yum install iptraf

使用

运行 iptraf

sudo iptraf

功能

  • 显示实时流量情况。
  • 提供详细的连接信息。
  • 支持界面切换。
">