标签: Linux

  • 搭建 MinIO 私有云存储并配置 Joplin 同步

    搭建一个私有的云存储服务基于 MinIO,Joplin客户端配置S3进行笔记同步。这种方法简化了 MinIO 的部署和管理,并提供了一个安全、可靠且私有的笔记同步解决方案。

    新版 MinIO 社区版已经移除了大部分 Web UI 管理功能(例如用户、权限、桶管理等),现在需要通过命令行工具 mc 操作,对我们来说使用起来不太方便。

    可以选择minio/minio:RELEASE.2025-04-22T22-12-26Z 版本,主要是为了保留其功能完整的 Web 管理控制台。

    安装MinIO

    1. 创建 docker-compose.yml 文件

    services:
      minio:
        image: minio/minio
        container_name: minio
        ports:
          - "9000:9000"
          - "9001:9001"
        volumes:
          - ./minio/data:/data
        environment:
          MINIO_ROOT_USER: qixinlee
          MINIO_ROOT_PASSWORD: qixinlee.com
        command: server /data --console-address ":9001"
        restart: always

    重要提示:

    • 立即修改默认用户名和密码! 为了安全,请将 YOUR_ACCESS_KEY 和 YOUR_SECRET_KEY 替换为你自己生成的强密码。

    2. 启动容器

    运行以下命令启动 MinIO 容器:

    docker compose up -d

    这会在后台启动 MinIO 容器。 使用 docker-compose logs minio 查看日志,确保没有错误。

    3. 访问 MinIO 控制台

    • 打开你的浏览器,访问 http://YOUR_IP:9001 (将 YOUR_IP 替换为运行 MinIO 服务器的 IP 地址)。
    • 使用你设置的 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 登录。

    4. 在MinIO 控制台创建 Bucket

    • 登录后,单击 Buckets -> Create Bucket。
    • 输入存储桶名称(例如,joplin-sync),然后单击 Create Bucket。
    • 可以选择设置存储桶的对象锁定(Object Locking),防止意外删除。
    • 重要提示: 创建Bucket后,强烈建议配置Bucket策略,限制对Bucket的访问。

    5. 创建密钥信息

    在控制台 选择 Access Key 创建密钥

    Joplin 同步设置

    1. 同步信息设置

    • 在 Joplin 中,进入 工具 (Tools) -> 选项 (Options) -> 同步 (Synchronization)。
    • 同步目标 (Synchronization target): 选择 S3。
    • S3存储桶 (S3 bucket): joplin-sync (你创建的存储桶名称)
    • S3 URL (S3 URL): http://YOUR_IP:9000 (将 YOUR_IP 替换为运行 MinIO 服务器的 IP 地址)。
    • S3 区域 (S3 region): qixinlee(这个值不重要,因为 MinIO 不依赖于真正的 AWS 区域。 可以填任意值)
    • S3 访问密钥 (S3 access key ID): 你创建的 Access Key
    • S3 密钥 (S3 secret access key): 你创建的 Secret Key

    2. 测试和同步

    配置完成后,可以通过 同步 测试确保 Joplin 客户端与 MinIO 配置正常。建议首先同步少量数据,确保没有问题后再进行完整同步。

  • Debian 12 导出Docker 镜像并导入到没有互联网的 Docker 主机

    在有互联网的主机上:

    1. 列出镜像:

    docker images

    输出可能如下所示:

    REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
    my-app        latest    abcdef123456   2 weeks ago     500MB
    ubuntu        20.04     fedcba987654   3 weeks ago     200MB

    2. 导出 my-app:latest 镜像:

    导出单个镜像

    docker save -o my-app.tar my-app:latest

    导出多个镜像: 如果需要导出多个镜像,可以一次性完成

    docker save -o all-images.tar image1:tag1 image2:tag2 image3:tag3

    在无互联网的主机上:

    1. 将 my-app.tar 复制到 /root 目录。

    2. 导入镜像:

    docker load -i /root/my-app.tar

    3. 验证导入:

    docker images

    应该会看到 my-app:latest 镜像出现在列表中。

  • DD命令测试硬盘读写速度

    1. 测试硬盘写入速度

    使用 dd 命令将随机数据写入硬盘并计算写入速度:

    dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct
    
    • if=/dev/zero: 输入文件是 /dev/zero,这会生成零字节。
    • of=/tmp/testfile: 输出文件路径,即测试写入数据的目标文件。
    • bs=1M: 设置块大小为 1MB。
    • count=1024: 写入 1024 块(即 1024MB = 1GB)。
    • oflag=direct: 禁用文件系统缓存,进行原始写入操作。

    完成后,它会显示写入速度。

    2. 测试硬盘读取速度

    使用 dd 命令读取数据并计算读取速度:

    dd if=/tmp/testfile of=/dev/null bs=1M count=1024 iflag=direct
    
    • if=/tmp/testfile: 输入文件是先前创建的测试文件。
    • of=/dev/null: 输出数据丢弃,不保存。
    • bs=1M: 设置块大小为 1MB。
    • count=1024: 读取 1024 块(即 1024MB = 1GB)。
    • iflag=direct: 禁用文件系统缓存,进行原始读取操作。

    3. 清理测试文件

    rm -f /tmp/testfile