查找最近 60 天内修改过的空间文件以及不大于 4gb 的 tar.gz 文件(带日期)

查找最近 60 天内修改过的空间文件以及不大于 4gb 的 tar.gz 文件(带日期)

我维护一个文件服务器。我需要备份一段时间内更改过的文件。

首先,我将所有内容压缩为 4GB 文件并备份到 DVD。但我使用的 7z

7z a -t7z /home/user/myfiles051413_proj.7z /home/share/projects -v4000m -m0=bzip2 -mmt=4

似乎没有办法压缩过去 60 天内修改过的文件,我不确定如何将其传递给类似这样的命令。我不想压缩整个文件夹并备份已经备份的内容!(浪费空间)

tar 似乎对此很有效

find /home/share/projects -mtime -60

将它导入命令中也可以,但是空格会给我带来问题。这是我尝试运行的命令。查找过去 60 天内修改的所有文件。然后将它们压缩为 4gb 文件。

find /home/share/projects/ -mtime -60 | xargs tar -cvML 4194304 -f /home/user/myfiles`date '+%d%m%Y'_proj.tar`

目前它将运行一段时间,然后只有一个小文件。它在屏幕上打印出许多文件!


我一直在玩-print0

find /home/samba/shares/projects -mtime -60 -type f -print0| xargs tar -cvML 4194304 -f /home/samba/shares/bkup/`date '+%d%m%Y'_proj.tar` -T - --null

我得到了一大堆 tar: de: 无法统计:没有这样的文件或目录

答案1

最后一个脚本中的 -print0 有错误。

  1. 您使用 xargs。这不是一个好主意,因为对于很多文件,xargs 会运行 tar 两次或更多次。
  2. 您使用 tar -T - 选项。权利,但在这种情况下 xargs 是做什么的?

只需删除 xargs 因为它是不需要的。这会从 stdin 获取所有文件并将其作为参数放在 tar 中。然后 tar -T 选项在其 stdin 上没有任何内容。

相关内容