如何通过 Linux 的 rsync --times 选项保持文件的时间同步?
frostwave66:rsync 的 --times(或 -t)选项用于同步文件的修改时间(mtime),确保目标文件的时间戳与源文件一致。以下是实践经验和挑战的详细说明: 使用方法 基础命令:rsync -t [其他选项] 源路径 目标路径。通常结合 -a(归档模式,已包含 -t)使用,例如: rsync -avt /local/source/ user@remote:/remote/destination/ 实践经验 增量备份优化:若文件内容未变但时间戳更新,-t 仅同步时间戳,避免重复传输内容,节省带宽。 依赖时间戳的场景:适用于需保留编译时间、日志轮转等场景,确保目标环境行为一致。 权限与所有权:时间戳同步需目标文件可写,若权限不足(如 root 创建的文件),需搭配 --chmod 或 --no-perms 处理。 挑战与解决 时区差异:若源/目标系统时区不同,时间戳显示值可能不同(但 UTC 时间一致),需确认时区配置。 时间精度丢失:部分文件系统(如 FAT32)仅支持秒级时间戳,同步后可能存在误差。 元数据冲突:若同时使用 --checksum(校验文件内容),可能因时间戳不同触发冗余传输,需权衡参数组合。 只读目标限制:目标路径若为只读(如 CD-ROM),-t 会失败,需移除该选项或调整写入权限。 验证方法 同步后可通过 ls -l 或 stat 检查时间戳,例如: stat -c '%y' filename # 查看文件修改时间 最佳实践 优先使用 -a 而非单独 -t,以保留权限、所有权等属性。 测试时添加 --dry-run 预览操作,避免误覆盖。 跨平台同步时,确认文件系统对时间戳的支持粒度。