我正在迁移到新服务器,并且还有 html/php 文件,有一个目录,其中包含大约 90,000 个文件,总大小为 24GB,需要移动。
当我进行测试迁移时,我使用 tar 创建了一个 tarball,然后在新主机上使用 wget,然后提取了 tar 文件,虽然它运行良好,但总共花了大约 3 个小时才能完成。这将是 3 小时的停机时间,而我在实际迁移中这样做以确保没有新文件进入或文件被更改等。
我现在正在计划实际的迁移,并试图找到更快的方法来做到这一点,并想知道使用 rsync - 我只在本地使用过 rsync 并且只用于少量文件,所以对 90k 项目运行 rsync 会比上面的更快方法?
只要实际过程完成得更快,我就不太担心 CPU、内存或网络使用情况,因为无论如何,当系统更安静时,这将在数小时内完成。
我正在尝试备份我的 MongoDB 数据库并使用 SHA-1 校验和检查更改。问题是校验和不一样。
$ mongodump --quiet --db backup --out .
$ tar -cf backup1.tar backup
$ rm -r backup
$ sha1sum backup1.tar
d9519a5183fb797639af583738e292527c667420 backup1.tar
$ mongodump --quiet --db backup --out .
$ tar -cf backup2.tar backup
$ rm -r backup
$ sha1sum backup2.tar
f5c9e3e99e857a88052e9121a9eca61c40909c07 backup2.tar
Run Code Online (Sandbox Code Playgroud)
我确定数据库没有更新:
$ mongodump --quiet --db backup --out b1
$ mongodump --quiet --db backup --out b2
$ diff -r b1 b2
Run Code Online (Sandbox Code Playgroud) 在使用目录中的文件(读+写)时创建目录的 tarball 是否安全?
我想创建一个 20GB 目录的备份,而不必关闭我的应用程序服务器。
我不介意在创建 tar 时文件是否被更改,只要每个文件都存在于存档中,我就可以了。
我想使用 rsync 将目录从生产服务器备份到备份服务器。
我当前的解决方案:
我对此解决方案的问题是:没有足够的空间来创建 tar 文件+创建 tar 文件时需要大量资源。它应该尽可能减少对生产服务器资源的影响。
我想将文件发送到远程服务器上的 tar 文件中。我只需发送文件并将其 tar 到备份服务器上,但在我看来,这不是一个好的解决方案。
在我递归 tar 目录之前,我希望能够删除所有可执行文件。在 Windows 中,我会简单地删除所有带有 .exe 扩展名的文件。而且我不能简单地删除所有具有可执行模式的文件,因为这也会删除 shell 脚本。那么有没有办法自动删除目录中的非shell脚本脚本文件?
[root@centosvm01 /]# tar --create --exclude="storage/thumbs/" --file="storagebackup.tar" storage/ tar: storagebackup.tar: Wrote only 8192 of 10240 bytes tar: 错误不可恢复: 现在退出
我正在尝试备份整个 /storage 目录但排除 /storage/thumbs/
如果您备份系统并创建一个包含数千个文件和目录的 .tar.gz,您如何轻松检查其完整性?(即无需解压)。
保留备份很好,但实际上确保您的备份在时机成熟时能够正常工作甚至更好......我想知道一种简单的方法来做到这一点。
我想在创建 tar.gz 文件时删除一个文件夹,因为它用于备份并且占用太多空间并且不是必需的
我正在使用以下命令;
tar -cvzf /home/backups/$STAMP-Earth.tar.gz /home/bukkit/
Run Code Online (Sandbox Code Playgroud)
我不想在创建 tar.gz 时包含“/home/bukkit/plugins/dynmap”
任何帮助,将不胜感激。
我使用创建了一个 tarball tar zcf arhive.tar.gz dir/,这可以正常工作。现在我想把它分成两个简单的档案,一个只用于图像,另一个 - 用于其他所有内容。
似乎没有一种简单而干净的方法可以做到这一点。因为tar我只能排除文件,排除除 gif、jpg 和 png 之外的所有扩展名是不合理的。
要包含我必须使用find-exec或| xargs. 这有点工作,但如果文件名有空格或特殊字符(撇号,引号),则会中断。所以现在我必须将所有文件名输入管道,awk然后手动转义它们?
我错过了什么?为什么这么复杂?
我只是想 tar zcf archive-images.tar.gz dir/ --match-only=*.png
我想禁用使用 .bashrc 进行备份的 bash 脚本的要求sudo或运行。roottar
我将此行添加到我的 sudoers 文件中
username ALL=NOPASSWD: /bin/tar
Run Code Online (Sandbox Code Playgroud)
但是,在我添加后,当我运行此备份命令时,它仍然显示权限被拒绝
/bin/tar -cvpzf /root/sysBackup/backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/dev /
Run Code Online (Sandbox Code Playgroud)
这些是错误
/bin/tar: Removing leading `/' from member names
tar (child): /root/sysBackup/backup.tar.gz: Cannot open: Permission denied
tar (child): Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?