问题场景还原
在一次SunOS 5.5.1系统的备份恢复操作后,发现/var
目录意外变为空目录。由于该目录包含系统运行时的关键数据(如日志、邮件、打印队列等),需要从另一台相同版本的工作机进行完整恢复。
跨机拷贝方案选择
在Unix-like系统中,常用的远程拷贝工具包括:
# 方案1:使用tar+ssh组合(推荐)
(源机器执行)
tar cf - /var | ssh username@target_host "cd / && tar xvf -"
# 方案2:rsync增量同步(需安装)
rsync -avz --delete /var/ username@target_host:/var/
权限处理要点
SunOS特有的权限问题需要注意:
# 恢复后检查重要目录权限
chmod 775 /var/mail
chown root:sys /var/adm
关键目录验证清单
- /var/spool/cron - 用户crontab文件
- /var/sadm/install - 软件包数据库
- /var/ldap/ - LDAP相关数据(如有)
自动化脚本示例
以下脚本可自动完成校验和恢复:
#!/bin/sh
# SunOS_var_restore.sh
SOURCE_HOST="backup_host"
LOG_FILE="/tmp/var_restore.log"
{
echo "Starting /var restoration at $(date)"
ssh $SOURCE_HOST "cd / && tar cf - var" | (cd / && tar xvf -)
/usr/bin/chmod -R a+rX /var/log
/usr/sbin/chown -R root:other /var/tmp
} > $LOG_FILE 2>&1
故障排查记录
常见错误及解决方法:
# 错误1:空间不足
df -k /var
# 解决方法:先清理目标机/var/cache/目录
# 错误2:ACL权限问题
/usr/bin/ls -V /var/adm
# 解决方法:使用setfacl重置ACL
后续维护建议
建议建立定期校验机制:
# 每周校验目录完整性
find /var -type f -exec cksum {} \; > /var/.system_integrity_db