Ubuntu备份进程数据的实用方案
一、先明确备份范围
二、备份进程元数据
ps -ef > processes_$(date +%F_%H-%M-%S).txtpgrep -f <进程名> | xargs ps -p -o pid,ppid,cmd,%cpu,%mem --no-headers > proc_<进程名>_detail.txtlsof -p <PID> > proc_<PID>_files.txtss -tulpen | grep <PID> >> proc_<PID>_net.txtsystemd-cgtop -b -n 1 > cgroup_snapshot.txtsystemctl list-unit-files --type=service --state=enabled > enabled_services.txtsystemctl list-units --type=service --state=active > active_services.txtsudo cp /etc/crontab /etc/crontab.bak-$(date +%F);sudo cp -a /etc/cron.d /etc/cron.d.bak-$(date +%F)crontab -l > $HOME/crontab.bak-$(date +%F)sudo journalctl -b > journal_$(date +%F).logsudo dmesg > dmesg_$(date +%F).logtmux list-sessions > tmux_sessions.txtscreen -ls > screen_sessions.txt
以上命令可组合为一个脚本,按日/小时归档,便于审计与恢复时定位版本。三、备份进程持久化数据
sudo tar -czvf proc_data_<进程名>_$(date +%F).tar.gz /var/lib/<进程名> /etc/<进程名> /var/log/<进程名> 2>/dev/nullrsync -aAXv --delete /var/lib/<进程名>/ /backup/<进程名>/rsync -avz -e ssh /var/lib/<进程名>/ user@backup:/backup/<进程名>/duplicity --no-encryption /var/lib/<进程名> file:///backup/<进程名>sudo apt install timeshift;启动 Timeshift 按向导选择 RSYNC/BTRFS 与备份位置,设置计划任务。四、自动化与恢复
0 2 * * * /usr/local/bin/backup_proc.sh/etc/systemd/system/backup-proc.service)与定时器(如:/etc/systemd/system/backup-proc.timer),启用:sudo systemctl enable --now backup-proc.timersudo systemctl restart <服务名> 或 sudo service <服务名> restarttmux attach -t <会话名> 或 screen -r <会话名>五、注意事项与最佳实践