Articles of tar

我可以rsync一个tar文件,因为它仍然被创build?

我有一个每天的过程,创build一个非常大的MySQL数据库(> 500GB)到backup.tar.gz文件的快照。 我想rsync这个文件到另一台远程机器。 传输数据将花费比实际创build备份更长的时间,所以我想知道… 我可以在完全完成之前使用rsync启动backup.tar.gz文件的传输过程,因为大部分数据已经被移动到另一个远程机器上了。 或者这会损坏tar.gz文件而不起作用?

如何tar一个fifo

我想tar一个程序的输出写入标准输出和一个fifo fd = 3。 这是我第一次尝试: #!/bin/bash #Create fd=3 exec 3> >(cat) #Start the tar tar -cvzf ha.tgz /dev/fd/1 /dev/fd/3 #Write data echo stdout echo 'fd=3'>&3 #close exec 3>&- 它创build了ha.tgz,其内容是/ dev / fd / 1和/ dev / fd / 3。 但是,当我提取文件,它基本上创build符号链接到/ dev / fd / 1和/ dev / fd / 3(这是破碎)。 我希望这些文件只是普通文件,其内容将是我在脚本中回应的内容。 有没有办法做到这一点?

Linux上的完全tar备份,不包括某些根文件夹

我有一个问题,我似乎无法find答案。 我正在尝试编写一个shell脚本来使用tar进行完整的系统备份。 显然,有几个文件夹我不想备份(/ dev,/ mnt,/ proc,/ tmp等等)。 有相当数量的文件夹,我不想备份,所以我使用“排除”标志来保持命令相对干净。 问题是,它不工作。 这里是我使用的焦油标志: –create –file $BACKUP_FILE –preserve-permissions –same-owner –numeric-owner –listed-incremental $INCREMENTAL_FILE –level=0 –xz –directory / –exclude-caches –exclude-from $EXCLUDE_FILE -v 这是我的排除文件: /dev /lost+found /media /mnt /proc /run /sys /tmp /var/spool /var/run /var/tmp 当我运行我的脚本时,它仍然备份我不想备份的文件夹。 切换到一堆'–exclude'标志似乎并不奏效(我宁愿不使用它们)。 我已经尝试将'–exclude-从$ EXCLUDE_FILE'改为'–exclude-from = $ EXCLUDE-FILE',我已经确定在每行和其他一些东西之后没有空格(不能记住它们,事情开始变得模糊)。 我一直在阅读焦油模式,看看是否有什么我失踪,我还没有遇到任何东西。 我试图看看这是否与安全目的剥离导致的斜线有关,但我还没有发现任何东西。 虽然谷歌search唯一的事情,我发现这种帮助是一个人做同样的事情,并通过从他的排除文件条目中删除前导'/'来解决它。 我已经尝试过,它可以工作,但它排除所有文件夹,而不是根目录。 我可能会在我的家中有一个“媒体”文件夹,我想要支持这个文件夹而不是/ media文件夹,所以这不是一个合适的解决scheme。

我如何得到GNU tar的–strip-git-archive组件的效果?

从广义上讲,我想要的是一个直接的tar-tar转换,其结果的根目录只包含原始的特定目录子树。 用一个例子来说明,比如说我只想从git的仓库中findgitweb目录 。 运行 $ git archive –prefix = git-gitweb / master gitweb | tar tf – 给 混帐的GitWeb / GIT-的GitWeb /的GitWeb / GIT-的GitWeb /的GitWeb / INSTALL GIT-的GitWeb /的GitWeb /生成文件 GIT-的GitWeb /的GitWeb /自述 GIT-的GitWeb /的GitWeb / gitweb.perl 混帐的GitWeb /的GitWeb /静态/ 混帐的GitWeb /的GitWeb /静态/混帐favicon.png 混帐的GitWeb /的GitWeb /静态/混帐logo.png 混帐的GitWeb /的GitWeb /静态/ gitweb.css 混帐的GitWeb /的GitWeb /静态/ gitweb.js 但我想要 […]

.tar.gz和第一个gz然后焦油的区别

我做了我的文件夹的两个压缩副本,首先使用命令tar czf dir.tar.gz dir这给我一个大小tar czf dir.tar.gz dir的档案。 然后我尝试了另一种方法,首先我将所有文件打包在目录中,然后使用 gzip ./dir/* tar cf dir.tar dir/*.gz 但第二种方法给了我dir.tar大小〜30kb(几乎一倍)。 为什么有这么大的差异?

Tar归档:追加可靠性如何?

我注意到TAR中的-a选项允许将文件附加到现有的存档。 这对创build集文件夹的递增备份有多可靠? 有没有人可以分享他们的经验? 从TAR手册: -A, –catenate, –concatenate append tar files to an archive

我怎样才能tar一个正在被另一个进程使用的文件?

我正在归档一个目录。 该目录有另一个进程正在写入的文件。 当我使用Linux tar / Perl Tar模块对此进行tar时,在档案中文件的入口在那里,但内容为空。 在tar文件之前是… -rw-r–r– 1 irraju dba 28 Feb 18 02:22 a -rw-r–r– 1 irraju dba 25 Feb 18 02:23 b -rw-r–r– 1 irraju dba 29 Feb 18 03:38 c 解约后 -rw-r–r– irraju/dba 28 2009-02-18 02:22:58 a -rw-r–r– irraju/dba 25 2009-02-18 02:23:17 b -rw-r–r– irraju/dba 0 2009-02-18 03:33:12 c 我该如何解决这个问题? […]

MySQL从远程转储到tar.gz,无需shell访问

我试图从MySQL到我的本地客户端转储。 这是我现在有: mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | gunzip -9 > $FILE 我想要的是.tar.gz而不是gunzip存档。 我有本地客户端的shell访问,但不是在服务器上。 所以,我不能做一个远程焦油,并在这里复制。 那么,有没有办法将gzip转换为tar.gz。 (目前,.gz不能被识别为tar档案。) 谢谢。

在硬编码的tar命令中注入参数

我正在使用一个使用tar命令来备份大量数据的linux软件解决scheme。 硬编码到调用tar的二进制文件中的命令是: /bin/tar –exclude "/backup" –exclude / –ignore-failed-read -cvjf – /pbackup 2>>'/tar_err.log' | split -b 1000m – '/backup/temp/backup.tar.bz2' 没有机会改变命令,因为它被编码。 它使用bzip2来压缩数据。 使用参数–use-compress-prog = pbzip2时,我使用了所有的CPU核心,性能提高了很多(高达60%)。 通过将/ bin / bzip2中的bzip2符号链接到pbzip2二进制文件,我试图欺骗软件,但是当监视进程时,它仍然使用bzip2,因为我将它构build到tar中。 我知道这是一个棘手的问题,但有没有办法利用pbzip2而不改变这个外部调用的命令? 我的系统是Debian Sequeeze。 非常感谢!

焦油recursion与原始文件夹比较

我有一个用tar cvzf tartest.tgz tester/*制作的.tgz文件,如果用tar –list -f tartest.tgz文件列出tar,我有如下的结构 tester/2017-08-02_131404.png tester/cfg.pdf tester/tests/ tester/tests/1.png tester/tests/2.png tester/tests/3.png tester/tests/4.png tester/tests/5.png 如果我通过使用tar -df tartest.tgz tester/*比较tar与原始文件夹,一切正常,没有问题,没有错误 如果我在testing程序文件夹中添加文件20171006_183137.png ,然后重试,如预期的那样,出现错误: tar: tester/20171006_183137.png: Not found in archive tar: Exiting with failure status due to previous errors 如果我在tester / tests文件夹中添加文件20171006_183137.png ,然后重试,则不会出现错误和空白输出。 如果我在上次testing中添加-v选项,我只是得到焦油中的文件列表。 有没有办法recursion比较tar与原始文件夹和子文件夹?