Зазвичай rsyncпропускає файли, коли файли мають однакові розміри та час на стороні джерела та місця призначення. Це евристика, яка, як правило, є хорошою ідеєю, оскільки не дозволяє rsyncперевіряти вміст файлів, які, ймовірно, ідентичні на джерелах та сторонах призначення.
--ignore-timesвказує rsyncвимкнути евристичний розмір файлів за часом і розміром і, таким чином, безумовно перенести ВСІ файли з джерела до місця призначення. rsyncПотім перейде до читання кожного файлу на стороні джерела, оскільки йому потрібно буде або використовувати його алгоритм передачі дельти, або просто надсилати кожен файл у повному обсязі, залежно від того, --whole-fileбула вказана опція.
--checksumтакож змінює евристичний розмір файлів, розмірів, розмірів файлів, але тут він ігнорує часи та вивчає лише розміри. Файли на стороні джерела та призначення, які відрізняються за розміром, передаються, оскільки вони, очевидно, різні. Файли однакового розміру rsyncперевіряються сумою (з MD5 у версії 3.0.0+ або з MD4 у попередніх версіях), також передаються файли, які мають різні суми.
У випадках, коли джерела та цільові сторони здебільшого однакові, --checksumце призведе до того, що більшість файлів буде перевірено на суму з обох сторін. Це може зайняти тривалий час, але підсумок полягає в тому, що найменший мінімум даних буде фактично перенесений по дроту, особливо якщо використовується алгоритм передачі дельта. Звичайно, це лише виграш, якщо у вас дуже повільні мережі та / або дуже швидкий процесор.
--ignore-timesз іншого боку, надсилатиме більше даних по мережі, і це змусить прочитати всі вихідні файли, але принаймні це не покладе додатковий тягар обчислення багатьох криптографічно сильних хешсумів на процесор джерела та призначення. Я б очікував, що цей варіант буде ефективнішим, ніж --checksumколи ваші мережі швидкі та / або ваш процесор порівняно повільний.
Я думаю, я б коли-небудь використовував --checksumабо --ignore-timesякби я передавав файли до місця призначення, де підозрювали, що вміст деяких файлів був пошкоджений, але час модифікації яких не змінювався. Я не можу придумати жодної іншої вагомої причини використовувати будь-який варіант, хоча, ймовірно, є й інші випадки використання.
--checksumкорисним разом із--itemize-changesпідтвердженням резервних копій. Раз і знову мої резервні сценарії виконують повне порівняння таким чином після завершення поточних щоденних та тижневих оновлень. Я отримую електронний лист, позначений терміново, якщо--itemize-changesвиводить щось несподіване, тому я знаю, що існує потенційна проблема, яку я повинен розглянути.