Каково взаимодействие параметров rsync –size-only и -sparse?

Если я использую rsync вместе с параметрами --size-only и --sparse , если файл уже существует в качестве полного файла (в противном случае это не так), он не перезаписывается.

Если я опускаю параметр --size-only , не разреженный файл перезаписывается с разреженной версией. Я хочу, чтобы файл был перезаписан, и я хочу сохранить параметр --size-only (если --size-only не могу убедиться, что я этого не делаю).

Это часть скрипта, который периодически запускается. В прошлом опция --sparse не использовалась, и много места было потрачено впустую.

Как я могу продолжать использовать --space-only (и другие параметры, которые я здесь не включен), и перезаписывать большие файлы, когда скрипт выполняет свою работу? Миссия поиска и уничтожения была бы слишком «дорогой».

Я проверил это с помощью rsync 3 в Ubuntu с ext3 и CentOS с ext4. Фактический rsync выполняется через ssh соединение.

Обратите внимание, что в следующей демонстрации ничего не меняется об исходном или целевом файлах (размер, время или содержимое) между прогонами rsync .

Демонстрация:

 $ dd if=/dev/zero of=sparse.out bs=1 seek=1M count=1 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.000307332 s, 3.3 kB/s $ stat sparse.out File: `sparse.out' Size: 1048577 Blocks: 16 IO Block: 4096 regular file Device: 802h/2050d Inode: 2377326 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ dennis) Gid: ( 1000/ dennis) Access: 2011-07-28 22:06:52.000000000 -0500 Modify: 2011-07-28 22:06:52.000000000 -0500 Change: 2011-07-28 22:06:52.000000000 -0500 $ du -h sparse.out 8.0K sparse.out $ rsync --size-only sparse.out sparse.out.rsync $ stat sparse.out.rsync File: `sparse.out.rsync' Size: 1048577 Blocks: 2064 IO Block: 4096 regular file Device: 802h/2050d Inode: 2377329 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ dennis) Gid: ( 1000/ dennis) Access: 2011-07-28 22:09:19.000000000 -0500 Modify: 2011-07-28 22:09:20.000000000 -0500 Change: 2011-07-28 22:09:20.000000000 -0500 $ du -h sparse.out.rsync 1.1M sparse.out.rsync $ rsync --size-only --sparse sparse.out sparse.out.rsync $ stat sparse.out.rsync File: `sparse.out.rsync' Size: 1048577 Blocks: 2064 IO Block: 4096 regular file Device: 802h/2050d Inode: 2377329 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ dennis) Gid: ( 1000/ dennis) Access: 2011-07-28 22:09:19.000000000 -0500 Modify: 2011-07-28 22:09:20.000000000 -0500 Change: 2011-07-28 22:09:20.000000000 -0500 $ du -h sparse.out.rsync 1.1M sparse.out.rsync $ rsync --sparse sparse.out sparse.out.rsync $ stat sparse.out.rsync File: `sparse.out.rsync' Size: 1048577 Blocks: 16 IO Block: 4096 regular file Device: 802h/2050d Inode: 2377330 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ dennis) Gid: ( 1000/ dennis) Access: 2011-07-28 22:11:23.000000000 -0500 Modify: 2011-07-28 22:11:23.000000000 -0500 Change: 2011-07-28 22:11:23.000000000 -0500 $ du -h sparse.out.rsync 8.0K sparse.out.rsync $ stat -c '%b %B %o %s' sparse.out sparse.out.rsync 16 512 4096 1048577 16 512 4096 1048577 $ cmp sparse5.out sparse5.out.rsync $ 

  • Время ожидания rsync
  • Правильный способ создания сжатого, rsyncable зеркала каталога?
  • Резервное копирование с использованием rsync
  • Резервное копирование и синхронизация
  • Rsync несколько каталогов в одной строке
  • Rsync - измененный список изменений
  • В чем разница между rdiff и librsync?
  • Rsync и учитывать изменения имени / пути
  • One Solution collect form web for “Каково взаимодействие параметров rsync –size-only и -sparse?”

    --size-only сообщает rsync пропускать файлы, соответствующие размеру. Поскольку разреженные файлы предварительно распределены, они могут быть одного и того же размера, имея различный контент. Я хотел бы предложить удалить параметр --size-only и убедиться, что время модификации синхронизируется ( --times ). rsync тогда не будет проверять содержимое файла, если совпадают времена модификации (это то, что я предполагаю, что вы пытаетесь избежать --size-only ), в то же время синхронизируя файлы, которые были изменены.

    Linux и Unix - лучшая ОС в мире.