1

Я поддерживаю файловый сервер. Мне нужно сделать резервную копию файлов, которые изменились за определенный период времени.

Сначала я сжал все до 4 ГБ файлов и сделал резервную копию на 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 дней. затем сжимая их в файлы 4 ГБ.

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

я получаю много смол: de: не могу stat: нет такого файла или каталога

1 ответ1

0

у вас есть ошибка в последнем скрипте с -print0.

  1. Вы используете Xargs. не очень хорошая идея, потому что для многих файлов xargs запускает tar дважды или более.
  2. вы используете для tar -T - вариант. прав, а зачем в этой ситуации xargs?

просто удалите xargs, потому что он не нужен. это захватывает все файлы из stdin и помещает их в tar как аргументы в конце. тогда опция tar -T ничего не получает на свой стандартный ввод.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .