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

처음 두 파일에 대한 시간과 권한은 소스 디렉토리와 동일하지만 나머지 파일에 따라 다릅니다.

따라서 모든 소스 파일이 동일한 위치에서 왔으며 동일한 권한과 (더 많거나 적은) 시간을 갖더라도 일부 파일을 복사하고 권한과 시간을 보존 할 수 있지만 다른 파일과는 유지할 수 없는 것 같습니다. m 동시에 동일한 디렉토리에 모두 복사하므로 동일한 umask 등을 사용하십시오.

그렇다면 왜 모든 파일이 아닌 일부 파일의 시간을 보존 할 수 있습니까?

나는 세부 사항 (umask, Linux 버전, smb.conf 등)을 제공하게되어 기쁩니다. 단, 세부 사항 중 어느 것이 내가보고있는 것을 설명 할 수 있는지 이해할 수 없습니다.


당신은 SMB를 언급했습니다. 이것이 Windows 서버와 CIFS 공유입니까? NetApp에서? 이것도 중요 할 수 있습니다. 예를 들어 NetApp에는 다른 공유 / 혼합 모드가 있습니다. 사실, 공유 대상에 따라 많은 가능성이 있습니다. 그리고 당신이 아는 것처럼, 클라이언트에서 사용하고있는 커널 버전과 마운트 옵션.
Aaron

이 삼바 공유에 대한 마운트 세부 정보를 공유 할 수 있습니까? 마운트하는 동안 "noatime"을 사용했는지 확인하고
싶음

cp의 rsync insead를 사용하는 것이 좋습니다.
PKumar

답변:


8

유닉스에서는 타임 스탬프를 사용자가 소유하지 않은 파일에 보존 할 수 없습니다.

그렇기 때문에 이미 존재하는 경우 다른 사용자가 소유 file1하고 file2있는 경우 다음 명령이 실패 file2합니다.

cp -p file1 file2

소스 파일이 소유 adminrig하고 대상 파일이 소유 하고 있기 때문에 귀하의 경우 인 것 같습니다 tmark.

강제 적용으로 -f문제가 해결되지 않는 해결 방법이 있는지 확실 하지 않습니다.

가능하면 대상 파일의 소유권을 변경하십시오 ...


2
krisFR 감사합니다. 그러나 올바른 권한과 타임 스탬프 복사 된 소스 파일 은 오류를 생성하는 파일 과 동일한 소유권을 갖습니다. 사실, 모든 소스 파일은 같은 명백한 권한을 가지고 있고, 내가 완전하게보고 있어요 무엇인지 설명 할 수 소유권은 아닌 것 같아 그래서 그들은 모두, adminrig가 소유 - 다른 것도 파일의 권한과 타임 스탬프로 복사 없습니다.
tmark

대신 사용 cp -a 고려하십시오 .
Pablo A
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.