date
related_level
slug
type
relate_date
summary
status
tags
category
last_updated
Nov 10, 2025 10:02 PM
是否已更新
orginal_page
是否推荐
- 注意:truenas shell 默认不能直接 ctrl +c/v 复制粘贴,而是要通过 ctrl/shirt+insert 复制粘贴
TrueNAS 设置 postgresql 应用作为日志传送后备服务器
采用主机路径作为存储路径时,postgresql 应用需要有对应数据集的权限(采用 postgresql 后端的应用同理)
- 参考资料
- postgresql 应用会挂载
/var/lib/postgresql/data到对应数据集,且尝试由容器中 postgres 用户的用户 ID 拥有
- 正确设置 postgres 应用存储类型为主机路径的方法
- 新建数据集,并在数据集预设里选择 应用 模板
- 如果是子数据集,父数据集无需设置为 应用 模板
- 进一步修改对应数据集权限,所有者改为 netdata,群组改为 docker,递归应用
- 在 postgresql 应用中选择对应路径,勾选启用 ACL 和 ACL 条目下的 Force Flag
在 truenas 终端上确认 postgresql 数据目录的虚拟路径
docker exec ix-postgres-postgres-1 /bin/psql -U <username> -d <database> -c "SHOW data_directory;"<username>,<database>为部署时设置的用户名和数据库名称,可以修改- 正常情况下返回
/var/lib/postgresql/data - 对应挂载的物理路径
<mnt_path> - 如果是使用 ixVolume 自动创建存储,则挂载于
/mnt/.ix-apps/app_mounts/postgres/data文件夹 - 如果是主机路径则挂载于对应数据集的根路径
备份一份现有数据到其他数据集,以免出问题
cp -r <mnt_path> <other_dataset_path>/postgres
通过 pg_basebackup 拷贝其他 postgresql 数据库作为基础备份
- 需要添加 postgres_temp 数据集作为额外存储,挂载到
/var/lib/postgresql/data.temp - 后面称为
<temp_mnt_path>
docker exec -it ix-postgres-postgres-1 /bin/bash
ls -al /var/lib/postgresql/data.temp- 查看挂载是否成功
pg_basebackup -Pv -Xs -h <master_ip> -D /var/lib/postgresql/data.temp -U <username> --wal-method=stream- 复制到
/var/lib/postgresql/data.temp,即<temp_mnt_path> - 这里选择不压缩,不然还得解压一遍,需要压缩的添加
Ft -z
停止 postgresql 应用,在 truenas 内用基础备份数据覆盖原有数据
- 在 truenas 终端上执行
rm -rf <mnt_path>/*
cp -r <temp_mnt_path>/* <mnt_path>/
- 移除 pg_wal/ 内所有文件
rm -rf <mnt_path>/pg_wal/*
- 如果有之前未归档的WAL段文件,拷贝到 pg_wal/ 内
cp <dataset_path>/postgres/pg_wal/* <mnt_path>/pg_wal
配置为恢复模式并在 postgresql.conf 内配置流复制
touch <mnt_path>/recovery.signal
vim <mnt_path>/postgresql.confprimary_conninfo = 'host=<master-ip> port=5432 user=<usrname> password=<passwd> options=''-c wal_sender_timeout=5000'''restore_command = 'cp /var/lib/postgresql/data/pg_wal/%f %p'archive_cleanup_command = 'pg_archivecleanup /var/lib/postgresql/data/pg_wal %r'
- 其他可能还需要配置 listen_addresses
- 默认是 local,但 docker 内需要修改
重新启动容器等待 postgresql 完成基础备份恢复后正常运行
- 注意,需要先对应修改用户名,密码和主库为其他 postgresql 数据库的值,否则无法启动
- 可能也需要重新配置
postgresql.conf的监听地址,pg_hba.conf的 ACL 条目等
TrueNAS 安装 kavita 管理电子书和漫画
- (侧边栏)应用→探索应用程序→kavita,然后选择安装
- 网络配置可以选择宿主网络(默认5000端口)或映射到 30069 端口
挂载存储
- Hostpath:直接挂载 TrueNAS 路径
- SMB/CIFS:挂载网络路径
- Mount Path:
/mnt/smb - 服务器: truenas 服务器的 IP 或域名
- 如果是本地可以用
localhost - 路径:SMB 共享的名称
- 用户名
- 密码
- 硬件资源根据硬件情况进行配置
- 至少提供 1 CPU,256 MB 内存
kavita 资料库使用简单指引
- (右上方齿轮)设置→(侧边栏-服务器)资料库→添加资料库
- 选择不同类型会影响扫描对文件的识别
- 日漫一般选择 manga 类型
- https://wiki.kavitareader.com/guides/scanner/
- 目录内文件路径必须遵守特定的目录格式
- 根目录下只能放置文件夹,不能放置具体章节
- 理想的目录结构样式如下
- manga 类型文件名识别样例
- https://wiki.kavitareader.com/guides/scanner/manga/
Filename | Parsed Series Name | Volume | Chapter |
Noblesse - Episode 406 (52 Pages).7z | Noblesse | 406 | ㅤ |
[Hidoi]_Amaenaideyo_MS_vol01_chp02.rar | Amaenaideyo MS | 1 | 2 |
Transferred to another world magical swordsman v1.2 | Transferred to another world magical swordsman | 1 | 2 |
Okusama wa Shougakusei c003 (v01) [bokuwaNEET] | Okusama wa Shougakusei | 1 | 3 |
Goblin Slayer Side Story - Year One 025.5 | Goblin Slayer Side Story - Year One | ㅤ | 25.5 |
Itoshi no Karin - c001-006x1 (v01) [Renzokusei Scans] | Itoshi no Karin | ㅤ | 1-6 |
Beelzebub_53[KSH].zip | Beelzebub | ㅤ | 53 |
Killing Bites Vol. 0001 Ch. 0001 - Galactica Scanlations (gb) | Killing Bites | 1 | 1 |
- 压缩文件可以直接读取,但会作为单独的系列进行展示
TrueNAS 通过 LXC 部署 PBS (Proxmox backup server)
- 参考资料
- 注意需要 TrueNAS Scale 25.04 或以上版本才支持本地运行 LXC
(侧边栏)实例组→初始化→创建新实例
- 虚拟化类型选择容器(LXC)
- 镜像选择 debian bookworm default
- 官方硬件需求:4 CPU 和 4 G 内存,每TB存储空间再额外添加 1G 内存
- 磁盘添加新的数据集 PBS,挂载到目标
/mnt/pbs
- 代理组用于通过宿主机直接暴露对应 PBS
- 宿主机和实例均填写协议 tcp, 8007 端口
- 如果需要通过 SSH 直接管理可以添加 22 端口 SSH 映射
- 网络默认即可
- 创建成功后为数据集 PBS 创建 PBS 用户和用户组
- 编辑 PBS 数据集 ACL,配置 PBS 为所有者和所有者组,应用预设 ACL - POSIX_OPEN
进入实例 shell 配置 LXC 安装 PBS
- (侧边栏)实例组→点击实例→(右方详细信息→工具)命令行
- 设置 root 密码,用于后续 PBS root 登录
passwd
- 替换软件源
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
- 安装依赖及需要的软件
apt update && apt install -y nano curl wget cron chrony- TFA 依赖于 chrony 或 ntp 服务
- 添加 gpg key
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
- 添加 pbs 订阅
cat << EOF | sudo tee -a /etc/apt/sources.list > /dev/null deb https://mirrors.ustc.edu.cn/proxmox/debian/pbs bookworm pbs-no-subscription deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib EOF
- 安装 pbs
apt update && apt install -y proxmox-backup-server
- 创建用于存放备份数据的目录
mkdir /mnt/pbs/data
lxc 容器的 chrony 需要修改启动参数,禁用对系统时钟的控制
- TFA 依赖于 chrony 或 ntp 服务,chrony 默认无法正常启动
nano /etc/systemd/system/chronyd.serviceExecStart=/usr/sbin/chronyd -x- 添加
x参数禁用对系统时钟的控制
systemctl daemon-reload
systemctl restart chrony
systemctl status chrony
- 访问
https://<truenas-ip>:8007登录 PBS - 使用 linux pam 认证登录
- 用户 root 密码为此前设置的密码
部署 PBS
- 添加数据存储
- 名称用于后续 PVE 部署中的 DataStore 字段
- 使用此前创建的路径
/mnt/pbs/data
创建 PBS SSL 证书
- 直接在 Truenas 系统上而非 lxc 容器内的 SSH 内执行
- 查看实例名称
incus list- 首列为名称
<instance_name>
- 复制 Truenas 本体证书更新 PBS 证书
incus file push /etc/stepca-certificates/example.com.crt <instance_name>/etc/proxmox-backup/proxy.pemincus file push /etc/stepca-certificates/example.com.key <instance_name>/etc/proxmox-backup/proxy.key
- 更改所有者及文件权限
incus exec <instance_name> -- chown root:backup /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.keyincus exec <instance_name> -- chmod 640 /etc/proxmox-backup/proxy.pem /etc/proxmox-backup/proxy.key
- 重启服务
incus exec <instance_name> -- service proxmox-backup-proxy restart- 需要重启的服务为 proxmox-backup-proxy
- 在 truenas 证书续签时添加上述步骤即可
nano /root/scripts/stepca-service-restart.sh
在 PVE 上部署 Truenas 上的 PBS 为备份服务器
- 如果启用了 TFA 二步认证,则 PBS 需要通过 API 令牌进行认证
PBS 为 root 用户创建 API 令牌并配置权限
- 配置→访问控制→API 令牌→添加
- API 密钥仅显示一次,需要记住,后续在 PVE 上添加时作为密码使用
- 使用时的用户名为
<usrname>!<apitokenname>
- 配置→访问控制→权限→添加→API 令牌权限
- 路径选择 /datastore
- API 令牌选择刚才创建的
- 角色选择 DataStoreAdmin
PVE 数据中心→添加→Proxmox Backup Server
- ID 为 PBS 在 PVE 上显示的名称,假设为 pbsapi
- 服务器填 PBS 地址,无需添加端口号
- 用户名为
<usrname>!<apitokenname> - 用户对应 PBS 中的用户而非 PVE 上的用户
- DataStore 使用 PBS 上数据存储的对应名称
指纹信息:证书续签后指纹会发生变更,需要配置定时任务修改
- 查看 PBS 服务器指纹信息
step certificate inspect --roots=~/.step/certs/root_ca.crt --format=json https://<pbs.url> | jq -r .fingerprint_sha256 | sed 's/$/@/; s/../&:/g; s/:@//; s/@/:/'- 通过 step 工具远程查看
proxmox-backup-manager cert info- Fingerprint (sha256) 列为对应指纹
- 需要在 PBS 服务器上执行
创建定时任务检查并更新 /etc/pve/storage.cfg 中的指纹信息
vim /usr/local/share/scripts/pbs-fingerprint.sh
chmod +x /usr/local/share/scripts/pbs-fingerprint.sh
crontab -e17,47 * * * * /usr/local/share/scripts/pbs-fingerprint.sh 2>&1 >> /var/log/pbs-fingerprint.log
- PVE 部署同步任务
- PVE 数据中心→备份→添加
- 具体 VM 备份时是否包含磁盘数据需要去对应硬件中勾选 备份 项
- Author:白鸟3
- URL:https://blog.kun2peng.top/operation/truenas_scale_app
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
