Debian进程备份与恢复的可行方案
一、核心原则与范围
二、备份策略与操作清单
ps -ef > /backup/process_list_$(date +%F_%H-%M-%S).txttop -b -n 1 > /backup/top_$(date +%F_%H-%M-%S).txtsudo dmesg > /backup/dmesg_$(date +%F_%H-%M-%S).logsudo journalctl -b > /backup/journal_boot_$(date +%F_%H-%M-%S).logsudo journalctl -u nginx.service -b > /backup/journal_nginx_$(date +%F_%H-%M-%S).logsudo tar -czvf proc_data_$(date +%F_%H-%M-%S).tar.gz /var/lib/myapp /etc/myapp /var/log/myappsudo rsync -aAXv --delete /var/lib/myapp /backup/myapp/sudo duplicity --full-if-older-than 7D /var/lib/myapp file:///backup/duplicity/myapp/tmux list-sessions > /backup/tmux_sessions.txt 或 screen -ls > /backup/screen_sessions.txtsudo apt install timeshift -y,按向导创建 Btrfs/Rsync 快照。三、恢复流程与要点
sudo tar -xzvf proc_data_YYYY-MM-DD_HH-MM-SS.tar.gz -C /sudo rsync -aAXv /backup/myapp/ /var/lib/myapp/sudo duplicity restore file:///backup/duplicity/myapp/ /var/lib/myapp/sudo systemctl daemon-reloadsudo systemctl start myapp.servicesudo systemctl enable myapp.servicesudo systemctl status myapp.servicesudo journalctl -u myapp.service -fsudo journalctl -u myapp.service -b、sudo tail -f /var/log/syslog、dmesg | tail四、常见场景与推荐做法
| 场景 | 推荐做法 | 关键命令/工具 |
|---|---|---|
| 无状态服务(如 Nginx、HAProxy) | 备份配置与内容,故障时快速重建 | tar/rsync 备份 /etc/nginx 与 /var/www;systemctl restart nginx |
| 有状态服务(数据库、消息队列) | 备份数据目录与事务日志,严格一致性;优先用内置工具(如 mysqldump、pg_dump) |
tar/rsync 或数据库原生工具;恢复后校验位点/一致性 |
| 前台长任务/临时会话 | 改造为 systemd 服务 或放入 tmux/screen;会话仅作临时保活 | systemctl 单元管理;tmux new-session -d -s job |
| 桌面或可控窗口的服务器 | 使用 Timeshift/Clonezilla 做系统级快照/镜像,回滚到健康点 | timeshift 向导;Clonezilla 启动盘镜像还原 |
| 容器化工作负载 | 分别备份卷数据与镜像/编排文件 | docker cp、docker save/load、docker-compose.yml 版本化保存与恢复 |
五、实践建议