cp -p akan menghemat waktu untuk beberapa file tetapi tidak semua?

9

Saya memiliki direktori sumber pada mesin dengan banyak file, semua dengan izin yang sama, yang ingin saya salin ke direktori lain, yang dipasang melalui 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

Direktori target dipasang melalui SMB dan saya mencoba untuk menyalin set file sekaligus.

[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

Perhatikan bahwa waktu dan izin pada dua file pertama sama dengan di direktori sumber, tetapi berbeda untuk file yang tersisa.

Jadi, tampaknya saya dapat menyalin beberapa file dan mempertahankan izin dan waktu mereka, tetapi tidak dengan file lain , meskipun semua file sumber berasal dari tempat yang sama dan memiliki izin yang sama dan waktu (kurang lebih), dan saya m menyalin semua ke direktori yang sama pada saat yang sama - dan karenanya dengan umask yang sama, dll.

Jadi, mengapa saya bisa menghemat waktu untuk beberapa, tetapi tidak semua file?

Saya akan dengan senang hati memberikan perincian lebih lanjut (umask, versi Linux, smb.conf, dll.) Kecuali saya tidak dapat memahami bagaimana perincian itu dapat menjelaskan apa yang saya lihat - karena mereka harus konstan di sini.

tanda
sumber
Anda menyebut SMB. Apakah ini berbagi CIFS dari server windows? Dari NetApp? Ini juga penting. NetApp misalnya memiliki mode berbagi / campuran yang berbeda. Bahkan, ada banyak kemungkinan tergantung dari apa yang Anda bagikan; dan ketika Anda menghindari, versi kernel dan opsi mount yang Anda gunakan pada klien.
Aaron
dapatkah Anda membagikan detail pemasangan untuk berbagi samba ini bagaimana cara memasangnya? hanya ingin memeriksa apakah Anda menggunakan "noatime" saat pemasangan
PKumar
lebih baik menggunakan rsync insead dari cp.
PKumar

Jawaban:

8

Pada Unix cap waktu tidak dapat disimpan pada file yang bukan milik pengguna.

Inilah sebabnya mengapa perintah berikut gagal jika file1dan file2dimiliki oleh pengguna yang berbeda seandainya file2sudah ada:

cp -p file1 file2

Tampaknya ini adalah kasus Anda karena file sumber dimiliki oleh adminrigdan file target dimiliki oleh tmark.

Tidak yakin apakah ada solusi karena memaksa dengan -ftidak menyelesaikan masalah.

Jika Anda bisa, coba ubah kepemilikan file target ...

KRFFR
sumber
2
terima kasih krisFR. Namun, sumber file yang telah disalin dengan izin yang tepat dan cap waktu, memiliki kepemilikan yang sama seperti orang-orang yang menghasilkan kesalahan. Faktanya, semua file sumber memiliki izin yang sama, dan semuanya dimiliki oleh adminrig, jadi sepertinya kepemilikan tidak dapat menjelaskan apa yang saya lihat sepenuhnya - jika tidak ada file yang boleh disalin dengan izin dan cap waktu.
tmark
Pertimbangkan menggunakan cp -agantinya .
Pablo A