我正在基于 Windows 域的环境中维护一个小型 Linux 工作站/服务器。除了在同一网络中之外,Linux 计算机未连接到域。
到目前为止,我正在使用一个自制的脚本,以增量方式将重要内容备份到内部硬盘驱动器,tar
并tar
使用rsync
.我们计划将本机(以及其他一些非域计算机)的备份集中(并自动)到域中的一个目录,该目录可能可以通过 NFS 挂载,并使用卷影复制服务 (VSS) 来访问旧的文件版本。
当然,我可以将我的tar
文件复制到这个目录,但是中央 IT 人员对这个解决方案并不满意,因为它会创建更多数据,而我负责删除旧备份(顺便说一句,实际上不会由于 VSS,立即删除)。
另一种选择是使用 rsync 直接同步本地文件系统与备份目录。这样做的(巨大)缺点是会丢失 Linux 文件权限和所有权,并且可能会丢失文件名中的无效字符。优点是旧文件版本会自动保存并在一段时间后删除。
对于第二种方法中的问题有一些解决方案/软件吗?
或者也许是一种完全不同的解决方案,可以将 Linux 备份到 Windows 文件系统,而不需要 Windows 端的特殊软件?
答案1
考虑使用 Backup Exec for Linux。不是免费的,但这可以满足您的管理需求。
“Windows 人员”正在为备份解决方案做什么? Linux端可以购买同类型的解决方案吗?
顺便说一句,logrotate 可用于轮换备份副本。 stackexchange 中有很多关于 logrotate 使用的精彩讨论。
最后,您可以创建自己的脚本来删除不需要的备份。我故意没有创建完整的脚本,这样您就可以了解一些有关 bash/csh/sh/tcsh/zsh/ksh 或您喜欢玩的任何 shell 内部的 if 测试的知识。简单计算“的数量”目录中的“最近”文件可以确定您是否有“足够”的备份来保证删除旧文件。
find /path/to/backups -type f -mtime -7 -print | wc -l
这将告诉您文件夹中有多少文件的保存时间不到 7 天。如果不够,请向管理员发送一封电子邮件并退出脚本。如果是这样,请盲目删除比您的保留计划更旧的文件。
find /path/to/backups -type f -mtime +30 -exec rm -f {} \;
这将找到文件并将其全部删除。