我们有一个内部网络服务器(虚拟化,托管 ReviewBoard,但不是超级相关),我们有一个相对一致的失败模式,失败的 NFS 挂载导致 / 被填满。Distro 是 Ubuntu(不要问)如果一个解决方案依赖于不同的发行版,它的实现会更慢。
正在对 /mnt/backup/ 执行备份,这应该是将 NFS 挂载到另一个系统。不幸的是,当挂载失败或掉线时,会在根文件系统上执行备份,正如您想象的那样,在 / 已满之前不会花很长时间,然后服务开始失败。
已经讨论了许多可能的解决方案。
监视 /mnt/backups 并确保它不是 root。也许是一项 cron 工作。
使用 /mnt/protected/backups,并首先将 /protected 挂载到一个小文件系统,也许是一个循环挂载到本地文件,这样它就不太可能失败。
chmod a-rwx /mnt/backups(根文件系统挂载点)。我不确定安装在受保护的导演上是否可行,我认为确实如此。
在挂载的树上创建一个名为“Backups”的目录,然后软链接“ln -s /mnt/backup/Backups /Backups”。除非挂载 /mnt/backup,否则使用 /Backups 进行备份将失败,因为本地树不包含子目录。
执行检查目录是否正确安装在备份脚本中。
我对这些方法的任何反馈、利弊或人们用作保护根文件系统免受此类恶意行为的标准方法的任何其他技术感兴趣。
想象一下,您要管理多个服务器,这些服务器提供许多不同的服务,供许多人使用。现在假设您要重新配置或替换其中一台服务器上的某些软件。显然,您不想在生产中的服务器上工作。
如果这是代码更改,作为开发人员,我会在本地开发机器上进行更改,在本地进行测试并将更改提交到版本控制系统。然后可以将更改部署在临时环境中,进一步测试并最终部署在生产环境中。如有必要,我也很容易回滚。
一般来说,或者具体来说,您如何在系统管理中实现这一目标?
(首先想到的是使用虚拟机并将虚拟机映像置于版本控制中,但我确信有很多文献和聪明的解决方案我目前不知道。)
在公司范围内使用 Dropbox 文件共享/版本控制/备份时,是否有任何特别的安全问题需要牢记?是否有建议的特定选项或设置来限制风险?
备份需要永远。在我们可以信任 btrfs 或 ZFS 来备份增量快照之前,如果有一个守护进程使用 inotify 来跟踪哪些文件实际发生了变化,以便备份运行得更快,那不是很好吗?这个程序在哪里?
如何备份我的 Linux 机器而不必每次都抓取整个文件系统?我想要一个程序来检测新的或更改的照片、源代码等,并将它们排队复制到我的 NAS。
我想在我的所有备份磁带上启用加密。我或多或少知道如何在技术上做到这一点,但实现这一点的程序和人为因素很棘手。
我使用带有 bacula 的 HP LTO4 驱动器,它没有任何密钥管理功能。实际上,它对硬件加密的支持是在读写之前调用一个外部脚本来设置驱动器上的密钥。
我的问题:
我在 S3 上托管了 200 GB 的产品图片(这是我的主要文件主机)。
我是否需要将该数据备份到其他地方,或者 S3 是否安全?
我一直在尝试将 S3 存储桶安装到 EC2 实例,然后每晚进行 rsync 备份。问题是它大约有 300 万个文件,因此需要一段时间来生成不同的 rsync 需求。备份实际上需要大约 3 天才能完成。
任何想法如何更好地做到这一点?(如果有必要?)
一段时间以来,我一直使用 rsync/ssh 将我的共享主机内容备份到我的个人 Synology NAS(212j),并且效果很好。有关信息,我使用无密码ssh连接。
3 天前,我更新了我的 NAS 软件,因为(或者至少我相信是从那以后),备份将不再起作用。我在主机上收到以下错误:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
ERROR: module is read only
Run Code Online (Sandbox Code Playgroud)
..我不明白。除了我所知道的与rsyncor相关的源和目标中没有任何变化之外ssh,我确实检查了一些事情,一切似乎都很好:
ssh好用户从主机连接到我的 NAS,所以像密钥这样的 ssh 东西没有改变。rsyncthrough使用的用户创建文件、目录等ssh)。我在这里和那里读到错误意味着我必须确保我rsyncd.conf拥有read only = no它的权利,但据我所知,我从来没有使用rsyncd过,因为我从来没有为它配置过任何东西,直到现在它就像一个魅力。 .
我使用以下命令进行备份:
rsync -ab --recursive \
--files-from="$FILES_FROM" \
--backup-dir=backup_$SUFFIX \
--delete \
--filter='protect backup_*' \
$WDIRECTORY/ \
remote_backup:$REMOTE_BACKUP/
Run Code Online (Sandbox Code Playgroud)
所以我被卡住了,真的无法弄清楚发生了什么。
编辑:
正如评论中所建议的那样,我还尝试将命令传递给 ssh(但不是从 ssh …
我发现许多网站都在谈论这样做,但我遗漏了一些重要的细节。一般步骤是
FLUSH TABLES WITH READ LOCKUNLOCK TABLES各种消息来源报告说,我正在使用的 InnoDB 实际上并不支持FLUSH. MySQL 用户手册指出有一个FLUSH TABLES...FOR EXPORT用于 InnoDB的变体,但这需要单独指定每个表,而不是备份整个数据库。我宁愿避免单独指定每个表,因为表列表很有可能与实际存在的表不同步。
我遇到的另一个问题是我计划做类似mysql -h"$HOST" -u"$USERNAME" -p"$PASSWORD" --execute="FLUSH TABLES WITH READ LOCK". 但是,这会在会话退出后立即解除锁定。这是有道理的,但也很烦人,因为我在拍摄快照时需要持有读锁。
我的另一个想法是使用 Percona XtraBackup 之类的工具进行热备份并拍摄备份快照,但我不想支付将所有数据写入第二个位置只是为了快照它的成本。
我正在使用 rsync 从远程 FTP 备份到本地计算机。
我在互联网上读到 rsnapshot 更好。
只想知道生产环境用的是哪个
我的实验室正在为我们小组正在进行的项目设置一个小型服务器,该服务器保存数据(主要是视频和图像数据,以及一些文档)。从历史上看,在一个研究项目结束后,数据最终会被随意地存档在一个硬盘驱动器中,或一大堆 DVD(或过去的 CD)中,和/或一些视频最终被保存在 Sony DV 磁带中,甚至VHS 磁带(该实验室自 90 年代初以来一直活跃),或以上所有内容的混合...
问题:(1) 将它们全部整合到相同格式和存储介质中的最佳方法是什么,以及 (2) 长期存档此类数据以供偶尔访问(例如 30 多年?)的最佳介质是什么?不幸的是,我们没有企业级预算(我们只是一个约 10 人的实验室),因此无法做花费数十万美元的事情。
谢谢!
PS 考虑到我们的旧视频和图像的分辨率较小,但最近的分辨率很大,我认为我们谈论的是真正旧数据的 30~40 TB,最近数据的另外 10~20 TB,然后每年增加约 5 TB .