cp -p сохранит время для некоторых файлов, но не для всех?


9

У меня есть исходный каталог на машине с кучей файлов с одинаковыми правами, которые я хочу скопировать в другой каталог, смонтированный через SMB.

[tmark@dexter JR09141045 roche_454_transfer]$ ls -l /source_dir
total 71348
-rwxrwxrwx 1 adminrig lifelabs 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 adminrig lifelabs 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxrwxrwx 1 adminrig lifelabs     1035 Mar 25 23:29 454AllControlMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs     2657 Mar 25 23:29 454AllControlMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs     4607 Mar 25 23:29 454BaseCallerMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs    14518 Mar 25 23:29 454BaseCallerMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs      351 Mar 25 23:23 454DataProcessingDir.xml
-rwxrwxrwx 1 adminrig lifelabs      702 Mar 25 23:29 454QualityFilterMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs     1609 Mar 25 23:29 454QualityFilterMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs    13496 Mar 25 23:29 454RuntimeMetricsAll.csv
-rwxrwxrwx 1 adminrig lifelabs    26967 Mar 25 23:29 454RuntimeMetricsAll.txt
-rwxrwxrwx 1 adminrig lifelabs     1675 Mar 25 14:48 dataRunParams.xml
-rwxrwxrwx 1 adminrig lifelabs     7134 Mar 25 23:29 gsRunProcessor.log

Целевой каталог монтируется через SMB, и я пытаюсь скопировать набор файлов одновременно.

[tmark@dexter JR09141045 target_dir]$ cd /target_dir
[tmark@dexter JR09141045 target_dir]$ cp -p /source_dir/* ./
cp: preserving times for `./454AllControlMetrics.csv': Operation not permitted
cp: preserving times for `./454AllControlMetrics.txt': Operation not permitted
cp: preserving times for `./454BaseCallerMetrics.csv': Operation not permitted
cp: preserving times for `./454BaseCallerMetrics.txt': Operation not permitted
cp: preserving times for `./454DataProcessingDir.xml': Operation not permitted
cp: preserving times for `./454QualityFilterMetrics.csv': Operation not permitted
cp: preserving times for `./454QualityFilterMetrics.txt': Operation not permitted
cp: preserving times for `./454RuntimeMetricsAll.csv': Operation not permitted
cp: preserving times for `./454RuntimeMetricsAll.txt': Operation not permitted
cp: preserving times for `./dataRunParams.xml': Operation not permitted
cp: preserving times for `./gsRunProcessor.log': Operation not permitted

[tmark@dexter JR09141045 target_dir]$ ls -l
total 71264

-rwxrwxrwx 1 tmark 1008 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 tmark 1008 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxr-xr-x 1 tmark 1008     1035 Apr  1  2015 454AllControlMetrics.csv
-rwxr-xr-x 1 tmark 1008     2657 Apr  1  2015 454AllControlMetrics.txt
-rwxr-xr-x 1 tmark 1008     4607 Apr  1  2015 454BaseCallerMetrics.csv
-rwxr-xr-x 1 tmark 1008    14518 Apr  1  2015 454BaseCallerMetrics.txt
-rwxr-xr-x 1 tmark 1008      351 Apr  1  2015 454DataProcessingDir.xml
-rwxr-xr-x 1 tmark 1008      702 Apr  1  2015 454QualityFilterMetrics.csv
-rwxr-xr-x 1 tmark 1008     1609 Apr  1  2015 454QualityFilterMetrics.txt
-rwxr-xr-x 1 tmark 1008    13496 Apr  1  2015 454RuntimeMetricsAll.csv
-rwxr-xr-x 1 tmark 1008    26967 Apr  1  2015 454RuntimeMetricsAll.txt
-rwxr-xr-x 1 tmark 1008     1675 Apr  1  2015 dataRunParams.xml
-rwxr-xr-x 1 tmark 1008     7134 Apr  1  2015 gsRunProcessor.log

Обратите внимание, что время и разрешения для первых двух файлов такие же, как в исходном каталоге, но отличаются для остальных файлов.

Таким образом, кажется, что я могу скопировать некоторые файлы и сохранить их разрешения и время, но не с другими файлами , даже если все исходные файлы происходят из одного места и имеют одинаковые разрешения и (более или менее) время, и я ' я копирую их все в один и тот же каталог одновременно - и, следовательно, с тем же umask и т. д.

Итак, почему я могу сохранить время для некоторых, но не для всех файлов?

Я был бы рад предоставить более подробную информацию (umask, версию для Linux, smb.conf и т. Д.), За исключением того, что я не могу понять, как какие-либо из этих деталей могут объяснить то, что я вижу - поскольку они должны быть постоянными здесь.


Вы упомянули SMB. Это общий ресурс CIFS с сервера Windows? Из NetApp? Это тоже может иметь значение. NetApp, например, имеет различные режимы совместного использования / смешанные. На самом деле, есть много возможностей в зависимости от того, с чем вы делитесь; и, как вы указали, версия ядра и параметры монтирования, которые вы используете на клиенте.
— Аарон

Можете ли вы поделиться подробностями монтирования для этого ресурса самбы, как он монтировался? просто хотел проверить, использовал ли ты "noatime" во время монтажа
— PKumar

предпочтительнее использовать rsync иссад cp.
— PKumar

Ответы:


8

В Unix временные метки не могут быть сохранены в файлах, которыми не владеет пользователь.

Поэтому следующая команда не выполняется , если file1и file2принадлежат разным пользователям в случае , если file2уже существует:

cp -p file1 file2

Кажется, это ваш случай, потому что исходные файлы принадлежат, adminrigа целевые файлы принадлежат tmark.

Не уверен, что существует обходной путь, поскольку форсирование с помощью -fне решает проблему.

Если можете, попробуйте сменить владельца целевых файлов ...


2
спасибо krisFR. Однако исходные файлы, которые были скопированы с правильными разрешениями и временными метками, имеют то же владение, что и те, которые генерируют ошибки. На самом деле, все исходные файлы имеют одинаковые видимые разрешения, и все они принадлежат adminrig, поэтому не похоже, что владение может объяснить то, что я вижу полностью - иначе ни один из файлов не должен копироваться с разрешениями и временными метками.
— tmark

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.