Ubuntu 22.04 安装 rsnapshot 1.4.3 指南
在 Ubuntu 22.04.5 LTS 上从零安装部署 rsnapshot:apt 仓库主线(1.4.3-2)、上游 deb 离线包(1.4.5-1)、tar.gz 源码(1.5.1)三方案实测,含版本校验、降级、快照根目录与 TAB 配置铁律、cron 定时调度与 ssh 免密远程备份前置、7 组排障 FAQ 与卸载清理。
Ubuntu 22.04 安装 rsnapshot 1.4.3 指南
目标:在 Ubuntu 22.04 服务器上从零完成 rsnapshot 快照备份工具的安装、配置与 cron 定时调度部署,覆盖 apt 在线安装(主线)、上游 deb 离线包、官方 tar.gz 源码三种方案及降级/卸载全流程。本文全部命令与回显均在 Ubuntu 22.04.5 LTS(x86_64)实机逐条实测照抄,实验中远程备份走 ssh 22 端口,不占用任何额外端口。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(
PRETTY_NAME="Ubuntu 22.04.5 LTS"),x86_64; - rsnapshot 版本:apt 仓库安装
1.4.3-2(jammy/universe),另实测上游 deb1.4.5-1与源码版1.5.1; - 依赖组件(apt 自动带入):Perl 5.34.0(
perl:any)、rsync 3.2.7、logrotate、liblchown-perl; - 快照根目录(实验环境):
/srv/rsnapshot/(生产建议独立磁盘/分区); - 网络形态:备份机通过 ssh(22 端口)拉取远端数据,无任何新增监听端口;
- 远端主机:
file-server(Debian 系主机名),备份专用账号backup,rsync + openssh-server; - 实测身份:全部命令以 root 执行。
二、前置条件
2.1 系统与依赖
rsnapshot 本体是 Perl 脚本,运行依赖 rsync、ssh 与基础系统工具。先刷新索引并确认基础依赖就绪(Ubuntu Server 22.04 默认已带 perl 与 ssh 客户端,rsync 由 rsnapshot 包的 Depends 自动带入):
apt-get update
dpkg -l perl rsync | tail -2
实测回显:
ii perl 5.34.0-3ubuntu1.9 amd64 Larry Wall's Practical Extraction and Report Language
ii rsync 3.2.7-0ubuntu0.22.04.7 amd64 fast, versatile, remote (and local) file-copying tool
💡 说明:
dpkg -s rsnapshot的Depends: perl:any, rsync, logrotate, liblchown-perl表明 apt 安装会自动解决全部依赖,无需手工预装;若要在极简系统上使用,确保perl、rsync、ssh(openssh-client)三个可执行即可。
2.2 快照根目录规划
快照根目录(snapshot_root)存放全部历史快照,强烈建议使用独立磁盘或分区:硬链接只在快照根内部生效,且快照增长不应挤占系统盘。本实验创建独立目录:
mkdir -p /srv/rsnapshot
⚠️ 注意:
snapshot_root路径必须以/结尾(这是 rsnapshot 配置的硬性要求,见第八节);目录属主建议 root,防止普通用户篡改快照内容。
2.3 远端主机要求(仅远程备份需要)
拉取(pull)模型下,被备份端只需满足:
- 运行 sshd(默认 22 端口)与 rsync(
apt install rsync openssh-server); - 为备份机配置 ssh 密钥免密登录(专用低权限账号,见第十节);
- 不需要安装 rsnapshot,不需要开放 22 以外的任何端口。
三、版本选型说明
| 渠道 | 版本 | 来源 | 适用场景 |
|---|---|---|---|
| Ubuntu 22.04 仓库 | 1.4.3-2 | jammy/universe | 生产主线:经发行版测试、依赖自动解决、随系统更新 |
| rsnapshot.org 上游 deb | 1.4.5-1 | 官方下载页 | 需要 1.4 线新修复且想保持 dpkg 管理的离线/内网环境 |
| 官方 tar.gz 源码 | 1.5.1(当前最新稳定) | rsnapshot.org/downloads | 需要上游最新特性、自定义安装路径或非 Debian 系主机 |
选型结论:生产优先 Ubuntu 仓库的 1.4.3-2——rsnapshot 1.4.x 功能成熟、配置格式与 1.5 线兼容(实测 1.5.1 直接读取同一份 /etc/rsnapshot.conf 语法检查通过);上游版本节奏为"多年一大版"(1.4.3 → 1.5.1 跨 5 年),仓库版本的滞后在实际功能上影响很小。
四、方案 A:Ubuntu 官方 apt 仓库在线安装(推荐主线)
4.1 方案说明
使用 Ubuntu 官方 jammy/universe 仓库安装,一条命令完成本体 + 依赖(perl、rsync、logrotate、liblchown-perl)安装,并与 apt 升级体系集成,是绝大多数场景的最佳选择。
4.2 安装命令
DEBIAN_FRONTEND=noninteractive apt-get install -y rsnapshot
实测回显(节选尾部):
Setting up xauth (1:1.1-1build2) ...
Setting up rsnapshot (1.4.3-2) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
4.3 安装验证
dpkg -l rsnapshot | tail -1
dpkg -s rsnapshot | grep -E "Version|Installed-Size|Depends"
apt-cache policy rsnapshot
实测回显:
ii rsnapshot 1.4.3-2 all local and remote filesystem snapshot utility
Version: 1.4.3-2
Installed-Size: 452
Depends: perl:any, rsync, logrotate, liblchown-perl
rsnapshot:
Installed: 1.4.3-2
Candidate: 1.4.3-2
Version table:
*** 1.4.3-2 500
500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
100 /var/lib/dpkg/status
⚠️ 注意:在 Ubuntu 仓库版上执行
rsnapshot version或rsnapshot --version只会打印一行rsnapshot、不带版本号(Debian 打包按政策把脚本内$VERSION置空):$ rsnapshot version rsnapshot这不是安装失败。确认版本请用
dpkg -l rsnapshot或apt-cache policy rsnapshot(实测见上)。上游 deb(第五节)与源码版(第六节)的版本回显则是完整的。
安装完成后系统自带一份可直接用的默认配置 /etc/rsnapshot.conf(约 250 行,绝大多数为注释说明),核心生效项如下(实测 grep -vE "^\s*#|^\s*$" 输出):
config_version 1.2
snapshot_root /var/cache/rsnapshot/
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_logger /usr/bin/logger
retain alpha 6
retain beta 7
retain gamma 4
verbose 2
loglevel 3
lockfile /var/run/rsnapshot.pid
backup /home/ localhost/
backup /etc/ localhost/
backup /usr/local/ localhost/
要点:默认快照根在 /var/cache/rsnapshot/(改配置指向大盘,见第八节);默认层级名为 alpha/beta/gamma(可自行改成 hourly/daily/weekly/monthly);默认备份 /home、/etc、/usr/local 三个本地目录。
4.4 首次语法检查与首轮快照
rsnapshot configtest
实测回显:
Syntax OK
把 snapshot_root 改到 /srv/rsnapshot/(编辑方法与逐项解释见第八节与本站配置参数详解篇),先试运行再真实执行一次:
rsnapshot -t alpha # 试运行:只打印等价 shell 命令,不改动任何数据
rsnapshot alpha # 真实执行第一轮快照
ls /srv/rsnapshot/
实测回显(-t 输出节选):
echo 2086 > /var/run/rsnapshot.pid
/bin/rm -rf /srv/rsnapshot/alpha.5/
mv /srv/rsnapshot/alpha.4/ /srv/rsnapshot/alpha.5/
mv /srv/rsnapshot/alpha.3/ /srv/rsnapshot/alpha.4/
mv /srv/rsnapshot/alpha.2/ /srv/rsnapshot/alpha.3/
mv /srv/rsnapshot/alpha.1/ /srv/rsnapshot/alpha.2/
mv /srv/rsnapshot/alpha.0/ /srv/rsnapshot/alpha.1/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
--link-dest=/srv/rsnapshot/alpha.1/localhost/ /home/ \
/srv/rsnapshot/alpha.0/localhost/
...
touch /srv/rsnapshot/alpha.0/
首轮真实执行后:
ls /srv/rsnapshot/
实测回显:
alpha.0
alpha.0 内即可看到与源目录同构的完整文件树——快照已经开始工作了。
五、方案 B:上游官方 deb 离线包安装(断网/升级场景)
5.1 方案说明
rsnapshot.org 提供 Ubuntu/Debian 通用的 all 架构 deb 包(当前 1.4.5-1),适合:内网无 apt 源环境、需要比仓库版更新的 1.4 线修复、或从 1.4.3 平滑升级。deb 包与系统 dpkg 数据库完全兼容,可随时降级回仓库版。
5.2 下载与完整性校验
在能联网的机器(或备份机)上下载 deb 与官方 sha256 文件并校验:
cd /root/pkg
curl -fsSLO http://rsnapshot.org/downloads/rsnapshot_1.4.5-1_all.deb
curl -fsSLO http://rsnapshot.org/downloads/rsnapshot_1.4.5-1_all.deb.sha256
cat rsnapshot_1.4.5-1_all.deb.sha256
sha256sum -c rsnapshot_1.4.5-1_all.deb.sha256
实测回显:
9c75d83eaf64823ed5dab7c2c53202f9ef249b40a6ec39210e1b85bb00b6074c rsnapshot_1.4.5-1_all.deb
rsnapshot_1.4.5-1_all.deb: OK
包大小约 129 KB(实测 ls -la:-rw-r--r-- 1 root root 129272 ... rsnapshot_1.4.5-1_all.deb),拷贝到目标机即可离线安装。
5.3 离线安装(自动补依赖)
DEBIAN_FRONTEND=noninteractive apt-get install -y /root/pkg/rsnapshot_1.4.5-1_all.deb
实测回显(在已装 1.4.3-2 的机器上原地升级):
(Reading database ... 7496 files and directories currently installed.)
Preparing to unpack .../pkg/rsnapshot_1.4.5-1_all.deb ...
Unpacking rsnapshot (1.4.5-1) over (1.4.3-2) ...
Setting up rsnapshot (1.4.5-1) ...
验证版本与配置兼容性(注意:上游 deb 的版本回显是完整的,还带 git 描述后缀):
dpkg -l rsnapshot | tail -1
rsnapshot version
rsnapshot configtest
实测回显:
ii rsnapshot 1.4.5-1 all local and remote filesystem snapshot utility
rsnapshot 1.4.5-5-gaf84984
Syntax OK
上游 1.4.5 直接通过了 1.4.3 时代编写的配置文件语法检查,存量配置无需改写。
5.4 降级回 Ubuntu 仓库版
dpkg 高版本会拦截低版本覆盖,需显式允许降级:
DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-downgrades rsnapshot=1.4.3-2
实测回显:
Preparing to unpack .../rsnapshot_1.4.3-2_all.deb ...
Unpacking rsnapshot (1.4.3-2) over (1.4.5-1) ...
Setting up rsnapshot (1.4.3-2) ...
验证已回到仓库版(版本回显恢复为"无版本号"形态):
dpkg -l rsnapshot | tail -1
rsnapshot version
实测回显:
ii rsnapshot 1.4.3-2 all local and remote filesystem snapshot utility
rsnapshot
六、方案 C:官方 tar.gz 源码安装(获取最新版 1.5.1)
6.1 方案说明
当需要上游最新稳定版(本文实测 1.5.1)或部署到无 deb 体系的 Linux 主机时,走源码安装。rsnapshot 是纯 Perl 脚本,"编译"只是生成与拷贝文件,无真正的 C 编译环节,但 ./configure 需要 make 与基础构建工具。
6.2 安装构建工具与下载校验
apt-get install -y make gcc curl
mkdir -p /usr/local/src && cd /usr/local/src
curl -fsSLO http://rsnapshot.org/downloads/rsnapshot-1.5.1.tar.gz
curl -fsSLO http://rsnapshot.org/downloads/rsnapshot-1.5.1.tar.gz.sha256
sha256sum -c rsnapshot-1.5.1.tar.gz.sha256
实测回显:
rsnapshot-1.5.1.tar.gz: OK
6.3 解压、配置、安装
tar xzf rsnapshot-1.5.1.tar.gz
cd rsnapshot-1.5.1
./configure --prefix=/usr/local --sysconfdir=/etc
make
make install
实测回显(configure 尾部节选与 make install 尾部节选):
Then type "make install" to install the program.
After rsnapshot is installed, don't forget to copy
/rsnapshot.conf.default to /rsnapshot.conf
...
/usr/bin/mkdir -p '/etc'
/usr/bin/install -c -m 644 rsnapshot.conf.default '/etc'
/usr/bin/mkdir -p '/usr/local/share/man/man1'
/usr/bin/install -c -m 644 rsnapshot.1 rsnapshot-diff.1 '/usr/local/share/man/man1'
make[1]: Leaving directory '/usr/local/src/rsnapshot-1.5.1'
安装产物:/usr/local/bin/rsnapshot、/usr/local/bin/rsnapshot-diff、/etc/rsnapshot.conf.default、man 手册。验证版本:
/usr/local/bin/rsnapshot version
实测回显:
rsnapshot 1.5.1
6.4 与发行版包共存与取舍
$PATH 中 /usr/local/bin 先于 /usr/bin,装完源码版后 which rsnapshot 会指向 1.5.1:
which rsnapshot
实测回显:
/usr/local/bin/rsnapshot
源码版 1.5.1 读取仓库版配置完全兼容:
/usr/local/bin/rsnapshot -c /etc/rsnapshot.conf configtest
实测回显:
Syntax OK
💡 说明:若要临时或永久切回发行版包,删除源码版文件即可恢复 PATH 指向
/usr/bin/rsnapshot(1.4.3-2)。cron 里的命令建议始终写绝对路径(如/usr/bin/rsnapshot),避免 PATH 变化导致版本漂移。
6.5 源码版卸载
在源码目录执行 make uninstall:
cd /usr/local/src/rsnapshot-1.5.1 && make uninstall
实测回显:
( cd '/usr/local/bin' && rm -f rsnapshot rsnapshot-diff )
( cd '/usr/local/share/man/man1' && rm -f rsnapshot.1 rsnapshot-diff.1 )
( cd '/etc' && rm -f rsnapshot.conf.default )
which rsnapshot
实测回显(已切回仓库版):
/usr/bin/rsnapshot
七、方案对比与选择建议
| 维度 | A:apt 仓库(主线) | B:上游 deb | C:源码 tar.gz |
|---|---|---|---|
| 版本 | 1.4.3-2 | 1.4.5-1 | 1.5.1(最新稳定) |
| 是否需联网 | 需(apt 源) | 下载一次即可离线 | 下载一次即可离线 |
| 依赖处理 | 自动(Depends 全解) | apt-get install ./deb 自动补 | 手工装 make/gcc/curl |
| 包管理集成 | apt 完整管理、随系统升级 | dpkg 管理、可降级 | 无包管理,需 make uninstall |
| 配置文件来源 | 自带可用默认 /etc/rsnapshot.conf | 沿用原配置 | 落 /etc/rsnapshot.conf.default 需自行改名/编辑 |
| 适用场景 | 绝大多数生产环境 | 内网/离线、要 1.4 线新修复 | 要最新特性、非 Debian 系主机 |
选择建议:能联网选 A;断网或要指定版本选 B(记得 sha256 校验);需要 1.5.1 新特性或非 Debian 系选 C。三者配置文件格式完全兼容,切换成本低。
八、快照根目录与主配置说明
8.1 最小可用配置
编辑 /etc/rsnapshot.conf,一份生产可用的最小配置只需以下条目(本实验环境的实测配置骨架):
config_version 1.2
snapshot_root /srv/rsnapshot/
no_create_root 1
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
retain hourly 6
retain daily 7
retain weekly 4
retain monthly 3
verbose 2
loglevel 3
logfile /var/log/rsnapshot.log
lockfile /var/run/rsnapshot.pid
rsync_long_args --delete --numeric-ids --relative --delete-excluded
link_dest 1
backup /etc/ localhost/
backup /home/demo/ localhost/
逐项说明:
config_version 1.2:配置语法版本声明,固定 1.2;snapshot_root:快照存放根,必须以斜杠结尾;建议独立磁盘/分区;no_create_root 1:快照根不存在时报错退出而不是自动创建(防止挂载点未挂上时把快照写到系统盘上);cmd_*:外部工具绝对路径,cmd_ssh用于远程备份点(纯本地备份可不配);retain <名称> <数量>:快照层级与保留份数,名称可自定义;hourly是最低层级(真正执行 rsync 的一层);logfile/lockfile:运行日志与并发锁文件路径;rsync_long_args:透传给 rsync 的长参数,详见本站配置参数详解篇(多参数写法有经典坑:参数之间用空格,整段值与参数名之间只用一个 TAB);link_dest 1:启用 rsync--link-dest硬链接复用(rsync ≥ 2.5.7 均支持,保持默认开启);backup <源> <目标点>:备份条目,源为绝对路径(本地)或user@host:/path(远程),目标点是快照内的挂载名。
8.2 TAB 分隔铁律(新手第一坑)
rsnapshot 配置解析器只认 TAB 作为字段分隔符,用空格分隔会直接报错。实测把 snapshot_root 一行的 TAB 换成空格后运行 rsnapshot configtest:
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot configtest
----------------------------------------------------------------------------
ERROR: /etc/rsnapshot.conf on line 2:
ERROR: snapshot_root /srv/rsnapshot/ - missing tabs to separate words - \
change spaces to tabs.
ERROR: /etc/rsnapshot.conf on line 21:
ERROR: backup /etc/ localhost/ - snapshot_root needs to be defined before \
backup points
ERROR: ---------------------------------------------------------------------
ERROR: Errors were found in /etc/rsnapshot.conf,
ERROR: rsnapshot can not continue. If you think an entry looks right, make
ERROR: sure you don't have spaces where only tabs should be.
解法:报错行改回 TAB 分隔(vim 可用 :set noexpandtab 后按 Tab 键输入;cat -A /etc/rsnapshot.conf | grep snapshot_root 检查应看到 ^I 而非空格)。更多逐参数实测解释见本专栏的配置参数详解篇。
8.3 配置生效验证
rsnapshot configtest
实测回显:
Syntax OK
配置改动后先 configtest 再 -t 试运行,是 rsnapshot 的标准操作序列。
九、cron 定时调度部署
rsnapshot 无守护进程,完全由 cron 驱动。写入 /etc/cron.d/rsnapshot(官方推荐节奏:低层级高频、高层级低频,且高层级要排在前面):
# /etc/cron.d/rsnapshot — rsnapshot 定时快照调度
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */4 * * * root /usr/bin/rsnapshot hourly
50 23 * * * root /usr/bin/rsnapshot daily
40 23 * * 6 root /usr/bin/rsnapshot weekly
0 23 1 * * root /usr/bin/rsnapshot monthly
节奏解读:每 4 小时整点做 hourly(0/4/8/12/16/20 点共 6 轮,对应 retain hourly 6);每天 23:50 把最老的 hourly 转入 daily;每周六 23:40 转 weekly;每月 1 日 23:00 转 monthly。高层级(daily/weekly/monthly)必须安排在低层级轮转之后执行,才能接到"最老的一份"。
启动并验证 cron 服务:
service cron start
service cron status
实测回显:
* Starting periodic command scheduler cron
...done.
* cron is running
💡 验证技巧:cron 是否真的在按
/etc/cron.d执行,可临时加一个每分钟的探针任务实测。把动作写进脚本再由 cron 调用(避开 crontab 内联命令的%坑,见 FAQ):# /usr/local/bin/cron-proof.sh #!/bin/bash /bin/date +"cron-fired: %F %T" >> /tmp/cron-proof.log* * * * * root /usr/local/bin/cron-proof.sh实测 1 分钟后
/tmp/cron-proof.log出现(17:44:12 为手工执行、17:45:01 为 cron 触发,cron 生效实证):cron-fired: 2026-10-21 17:44:12 cron-fired: 2026-10-21 17:45:01验证完删除探针任务与日志文件。逐子命令与轮转方向的完整实测见本专栏的 CLI 命令详解篇。
十、远程备份前置:ssh 免密配置
rsnapshot 采用拉取模型,备份机需要能用密钥直接登录被备份端。本实验以备份机 root 到远端 file-server 的专用账号 backup 为例:
- 备份机生成密钥对(已有可跳过):
ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519 -C "root@backup-server"
- 把公钥写入远端
backup账号的~/.ssh/authorized_keys(内容为上一步/root/.ssh/id_ed25519.pub),并收紧权限:
chmod 700 /home/backup/.ssh
chmod 600 /home/backup/.ssh/authorized_keys
chown -R backup:backup /home/backup/.ssh
- 备份机验证免密直通(首次会提示确认主机指纹,实测输入 yes 后):
ssh -o BatchMode=yes backup@file-server "whoami && hostname && ls /srv/appdata/"
实测回显:
backup
file-server
app.conf
blob.img
logs
- 在配置里加入远程备份点即可(
backup backup@file-server:/srv/appdata/ file-server/),ssh_args -o BatchMode=yes可避免交互卡住 cron 任务。远端数据随后即出现在快照树的file-server/挂载名下。
十一、常见问题(FAQ)
Q1:rsnapshot version 只输出 rsnapshot,没有版本号,是不是装坏了?
不是。Ubuntu 仓库包按 Debian 打包政策把脚本内 $VERSION 置空,实测 1.4.3-2 的 rsnapshot version 回显就一行 rsnapshot。确认版本用 dpkg -l rsnapshot(回显 ii rsnapshot 1.4.3-2 ...)或 apt-cache policy rsnapshot。上游 deb(1.4.5-1,回显 rsnapshot 1.4.5-5-gaf84984)与源码版(1.5.1,回显 rsnapshot 1.5.1)则带完整版本号。
Q2:配置明明看起来对,configtest 却报 missing tabs to separate words - change spaces to tabs.
配置字段之间必须用 TAB 分隔,用空格就会触发该报错(实测完整回显见 8.2 节)。用 cat -A 检查报错行:TAB 显示为 ^I。修复即把空格改成 TAB。
Q3:执行时报 Lockfile /var/run/rsnapshot.pid exists and so does its process, can not continue?
已有另一轮 rsnapshot 在跑(或锁文件残留且其 PID 对应的进程仍存活)。先确认:cat /var/run/rsnapshot.pid 得到 PID,ps -p <PID> 查看进程——若是正在跑的 rsnapshot 就等它结束;若进程已死属于陈旧锁,直接删除锁文件 rm -f /var/run/rsnapshot.pid 后重跑。实测发现 rsnapshot 默认对"PID 已不存在"的陈旧锁会自动清理并继续:
WARNING: Removing stale lockfile /var/run/rsnapshot.pid
WARNING: About to remove lockfile /var/run/rsnapshot.pid which belongs to a different process: 12345 (this is OK if it's a stale lock)
仅当锁内 PID 仍存活时才拒绝执行(退出码 1)。可用 stop_on_stale_lockfile 1 收紧为"陈旧锁也不自动清"。
Q4:no_create_root 1 时启动报错 rsnapshot refuses to create snapshot_root when no_create_root is enabled?
这是该参数的设计行为:快照根不存在时拒绝自动创建(防止独立盘未挂载时把快照写进系统盘)。实测完整报错:
ERROR: /srv/rsnapshot-ncr does not exist.
ERROR: rsnapshot refuses to create snapshot_root when no_create_root is enabled
手工 mkdir -p <snapshot_root> 后重跑即可;若希望自动建目录,把 no_create_root 设为 0(实测设 0 后自动创建并完成快照)。
Q5:cron 里写了 rsnapshot 但到点不执行,或行为怪异?
两个高频根因:(1) % 在 crontab 中表示换行,内联带 % 的命令会被截断(如 date +"%F" 只执行到 % 前)——把复杂动作写成脚本、cron 只调脚本路径(实测见第九节探针验证法);(2) cron 环境 PATH 极简,rsnapshot 命令请写绝对路径 /usr/bin/rsnapshot。
Q6:装了源码版后 which rsnapshot 变成 /usr/local/bin,版本行为不一致?
/usr/local/bin 在 PATH 中优先,源码版会"遮住"仓库版。统一版本:执行 make uninstall(实测回显见 6.5 节)或全员使用绝对路径。生产 cron 建议固定 /usr/bin/rsnapshot。
Q7:远程备份点首次运行失败 Permission denied (publickey)?
拉取模型的免密前提没配好。逐项检查:远端 sshd 在跑;~/.ssh 权限 700、authorized_keys 权限 600 且属主正确;备份机 ssh -o BatchMode=yes user@host 能直通(实测回显见第十节)。用 ssh -v user@host 可看到公钥尝试过程定位问题。
十二、卸载与清理
# 1. 停用 cron 调度
rm -f /etc/cron.d/rsnapshot
# 2. 卸载软件包(--purge 连同 /etc/rsnapshot.conf 一起删除)
DEBIAN_FRONTEND=noninteractive apt-get purge -y rsnapshot
# 3. 确认卸载
dpkg -l rsnapshot 2>/dev/null | tail -1 || echo "rsnapshot 已卸载"
实测回显(purge 尾部节选):
Removing rsnapshot (1.4.3-2) ...
Processing triggers for man-db (2.10.2-1) ...
rsnapshot 已卸载
快照数据不会随包卸载删除,确认不再需要后手工清理:
rm -rf /srv/rsnapshot /var/log/rsnapshot.log
源码版额外清理:源码目录 make uninstall(见 6.5 节)后删除 /usr/local/src/rsnapshot-1.5.1*。
十三、参考链接
- rsnapshot 官网与下载:https://rsnapshot.org/、https://rsnapshot.org/download.html
- 官方仓库(INSTALL.md):https://github.com/rsnapshot/rsnapshot
- Ubuntu 包信息:http://packages.ubuntu.com/search?keywords=rsnapshot
- 本站系列:《rsnapshot 介绍与选型指南》;配置参数详解与 CLI 命令详解见 rsnapshot 专栏