cp -p speichert die Zeiten für einige Dateien, aber nicht für alle?

9

Ich habe ein Quellverzeichnis auf einem Computer mit einer Reihe von Dateien, alle mit denselben Berechtigungen, die ich in ein anderes Verzeichnis kopieren möchte, das über SMB bereitgestellt wird.

[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

Das Zielverzeichnis wird über SMB bereitgestellt, und ich versuche, den Dateisatz auf einmal zu kopieren.

[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

Beachten Sie, dass die Zeiten und Berechtigungen für die ersten beiden Dateien dieselben wie im Quellverzeichnis sind, sich jedoch für die verbleibenden Dateien unterscheiden.

Es scheint also, dass ich einige Dateien kopieren und ihre Berechtigungen und Zeiten beibehalten kann, aber nicht mit anderen Dateien , obwohl alle Quelldateien vom selben Ort stammen und dieselben Berechtigungen und (mehr oder weniger) Zeiten haben, und ich ' m Kopieren Sie sie alle zur gleichen Zeit in dasselbe Verzeichnis - und damit mit derselben Umask usw.

Warum kann ich die Zeiten für einige, aber nicht alle Dateien beibehalten?

Ich würde gerne weitere Details (umask, Linux-Version, smb.conf usw. usw.) bereitstellen, außer ich kann nicht verstehen, wie diese Details erklären könnten, was ich sehe - da sie hier konstant sein sollten.

tmark
quelle
Sie haben SMB erwähnt. Ist dies eine CIFS-Freigabe von einem Windows-Server? Von einer NetApp? Das kann auch wichtig sein. NetApp verfügt beispielsweise über verschiedene Freigabe- / Mischmodi. In der Tat gibt es viele Möglichkeiten, je nachdem, von was Sie teilen; und wie Sie sich entzogen haben, die Kernelversion und die Mount-Optionen, die Sie auf dem Client verwenden.
Aaron
Kannst du die Mount-Details für diese Samba-Freigabe teilen? Wie wurde sie gemountet? Ich wollte nur überprüfen, ob du "noatime" beim Mounten benutzt
hast
vorzugsweise rsync insead von cp verwenden.
PKumar

Antworten:

8

Unter Unix können die Zeitstempel nicht für die Dateien beibehalten werden, die der Benutzer nicht besitzt.

Aus diesem Grund schlägt der folgende Befehl fehl, wenn er bereits vorhanden ist file1und file2verschiedenen Benutzern gehört, falls er file2bereits vorhanden ist:

cp -p file1 file2

Dies scheint Ihr Fall zu sein, da Quelldateien Eigentum adminrigund Zieldateien Eigentum von sind tmark.

Ich bin mir nicht sicher, ob es eine Problemumgehung gibt, da das Erzwingen mit -fdas Problem nicht löst.

Wenn Sie können, versuchen Sie, den Besitz von Zieldateien zu ändern ...

krisFR
quelle
2
danke krisFR. Die Quelldateien, die mit den richtigen Berechtigungen und Zeitstempeln kopiert wurden , haben jedoch den gleichen Besitz wie diejenigen, die die Fehler erzeugen. Tatsächlich haben alle Quelldateien die gleichen offensichtlichen Berechtigungen und sie gehören alle adminrig. Es scheint also nicht so, als ob der Besitz erklären könnte, was ich vollständig sehe - andernfalls sollte keine der Dateien mit Berechtigungen und Zeitstempeln kopiert werden.
Tmark
Betrachten Sie verwenden cp -astatt .
Pablo A