gsutil "Копирование mtime из src в dst", переместив исходные файлы?
Я использую gsutil для резервного копирования фотографий из специального ящика в Google Google Store.
Недавно я переместил все свои фотографии из этой выделенной коробки в новую выделенную. Я использовал соответствующие архивные флаги rsync, чтобы избежать изменения файлов mtimes.
Я только что впервые запустил gsutil на новом боксе, ушел и ожидал, что он будет перемещаться только по любым НОВЫМ файлам, которые ранее не были зарезервированы.
gsutil -m rsync -r /originals/. gs://my-bucket
Вместо этого я вернулся, чтобы найти вывод, содержащий сотни строк
Copying mtime from src to dst for gs://my-bucket/photo123456.jpg
Я могу видеть (через ls -ltu
) что время последнего доступа было затронуто, когда я переместил файлы, но правильно измененное время не изменилось, и в этом случае отображается дата с 2010 года.
Я отменил работу на данный момент. Что я сделал не так? Можно ли это исправить, чтобы он не пытался сделать это для всех 3 миллионов файлов?
При дальнейшей проверке я вижу, что файлы резервных копий в ближней строке имеют измененную дату 2015 года, когда они изначально создавались. Те, кто создал сообщение сегодня, имеют сегодняшнюю дату.
Почему это случилось? Задание резервного копирования выполнялось 1000 раз с момента первоначального резервного копирования файлов, не перезаписывая время изменения файлов, так почему же это не устраивает сейчас?
Интересно, может ли это быть, потому что я сейчас использую более новую версию gsutil?
1 ответ
В этом вопросе переполнения стека используется -c
вариант с gsutil rsync
помог. Эта опция:
Заставляет команду rsync вычислять и сравнивать контрольные суммы (вместо сравнения mtime) для файлов, если размер источника и места назначения совпадают. Эта опция увеличивает локальный дисковый ввод-вывод и время выполнения, если src_url или dst_url находятся в локальной файловой системе.
(Источник: документы GCP)