问题的第一部分如何对 SVN 存储库进行增量备份?执行此操作的命令是什么......以及我如何自动执行此操作(OS + UNIX)
我在我的工作场所注意到,有一种态度认为备份不是很重要(当然,开发/测试发生在任何形式的备份策略到位之前)。
因为我团队的其他成员不是像我这样的系统管理员/缺乏系统管理员知识,所以讨论了备份/灾难恢复注意事项,但没有实施。有一种态度,因为没有出错(但一个被忽视的事情是意外删除),那么我们不必太担心备份。
你如何应对这种文化?我确定它一定很常见?
谢谢
我们有一个外部 USB 2 驱动器,用作我们配置的备份驱动器。我们使用rsnapshot进行备份。它使用一些标准命令来管理快照:
rm -rf: 删除过期的快照mv:将旧快照向下移动一个插槽cp -al: 将上一个快照复制到新插槽rsync -a --delete --numeric-ids --relative: 同步新快照正如您在下面的日志中看到的那样,大部分时间都花在了rm -rf和cp -al步骤上:
[25/Dec/2010:14:00:02] rsnapshot hourly: started
[25/Dec/2010:14:00:02] echo 21012 > /var/run/rsnapshot.pid
[25/Dec/2010:14:00:02] rm -rf /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.4/ /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.3/ /mnt/extdrive/snapshots/hourly.4/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.2/ /mnt/extdrive/snapshots/hourly.3/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.1/ /mnt/extdrive/snapshots/hourly.2/
[25/Dec/2010:14:15:48] cp -al /mnt/extdrive/snapshots/hourly.0 /mnt/extdrive/snapshots/hourly.1
[25/Dec/2010:14:23:32] rsync -a --delete --numeric-ids --relative /etc /mnt/extdrive/snapshots/hourly.0/sm4/
[25/Dec/2010:14:23:52] touch /mnt/extdrive/snapshots/hourly.0/
[25/Dec/2010:14:23:52] rm -f /var/run/rsnapshot.pid
[25/Dec/2010:14:23:52] …Run Code Online (Sandbox Code Playgroud) 根据文档,我一直在尝试为一个简单的测试 PostgreSQL 9.0 数据库设置连续存档。在 postgres.conf 中,我设置了:
wal_level = archive
archive_mode = on
archive_command = 'touch /home/myusername/backup/testtouch'
archive_timeout = 30s
...并重新启动 PostgreSQL。touch 列出的文件永远不会出现。我可以手动运行 touch 命令,它按预期工作。
如果我尝试创建备份,它会永远等待 archive_command。在 psql 中;
postgres=# SELECT pg_start_backup('touchtest');
pg_start_backup
-----------------
0/14000020(1 行)postgres=# SELECT pg_stop_backup();
注意:pg_stop_backup 清理完成,等待需要的 WAL 段被归档 > 警告:pg_stop_backup 仍在等待所有需要的 WAL 段被归档(60 秒过去)
提示:检查你的 archive_command 是否正确执行。pg_stop_backup 可以安全地取消,但是如果没有所有的 WAL 段,数据库备份将无法使用。
什么会导致这种情况?我该如何解决?
附加信息:在 CentOS 5.4 上运行。以 root 身份安装 PostgreSQL 9.0.2。
更新:我首先尝试使用两者存档cp -i %p /home/myusername/backup/%f </dev/null并test ! -f /home/myusername/backup/%f && cp %p /home/myusername/backup/%f匹配手册。我将其简化为更简单的触摸呼叫以进行故障排除。
我正在尝试使用 rsync 备份多个文件,它们中的大多数都可以工作,但实际上是 truecrypt 加密容器的文件除外。我在文件中有一个隐藏卷,我想知道这是否是问题所在。
我理解 truecrypt 隐藏卷的要点是它不应该被检测到,但我认为这意味着它与垃圾/随机数据无法区分。
但是,当我通过在文件容器的隐藏卷中放置新文件来进行更改时,rsync 没有检测到文件已更改。
想法?
不幸的是,我别无选择,只能将服务器上的 ext3 分区中的一些文件备份到不允许我设置和编辑正常文件属性的文件系统(NFS,将 all_squash 设置为 chgrp/chown 等,即使 root 是被禁止的) )。我计划使用 rsnapshot 进行实际备份,因为我已经熟悉这一点并且它在其他场景中运行良好。
显然,我希望以某种方式保留这些备份的权限、所有权和其他属性,即使它不直接与文件本身有关。在我看来,剩下三个选项:
这些都不理想:
find+stat会有点浪费,但更重要的是从该信息中恢复会很繁琐。我可以编写一个小工具(在 C 中)来调用stat,将结构转储到文件并从该结构中恢复适当的信息,但这对于一些应该是微不足道的事情来说似乎是很多工作。建议?我倾向于解决方案 #3,除非它已经存在或者 #2 比我认为的更琐碎。我想要一些不需要重新发明任何轮子的简单而强大的东西,但是如果它们真的有用,我愿意编写新的轮子。
backup filesystems permissions backup-restoration file-permissions
有没有什么简单的方法可以每天备份所有本地数据库(同一个 postgresql 服务器)?我找到了一些我可以使用的 bash 脚本,但对于这样的工作,它们似乎非常复杂。
有什么简单的建议吗?
我有一台带有 8TB 数据的服务器,以及带有高编号 400GB 盒式磁带的磁带。以最少的努力备份此服务器的最佳解决方案是什么?我认为在一次完整备份后,我可以在一个 400GB 的磁带上进行多次增量。但是,我如何跨磁带进行完整备份(手动更换磁带),以及如何从完整备份和增量中恢复一个文件?
有没有什么简单的方法可以做到这一点,比如基于磁盘的 tar 备份?
现在我每天使用 rsync 和 cron 备份我的网站/服务器。我担心的是有人侵入我的服务器,然后访问我的 rsync 帐户并删除所有内容。我该如何保护自己免受这种伤害?
backup ×10
linux ×3
filesystems ×2
postgresql ×2
rsync ×2
mount ×1
permissions ×1
repository ×1
rsnapshot ×1
security ×1
sql-server ×1
svn ×1
tape ×1
truecrypt ×1
unix ×1