퍼티를 사용하여 대용량 파일을 원격 서버로 전송하려고 합니다. 파일을 전송하는 동안(파일이 크고 전송하는 데 시간이 걸리기 때문에) 권한은 기본 읽기 전용(rw-r----)으로 설정됩니다.
파일 전송 중에(파일이 전송되는 동안) 파일의 권한을 설정해야 합니다. 퍼티에서 어떻게 할 수 있나요? 누구든지 제안을 해주세요.
저는 Linux 명령을 처음 사용합니다. 제가 따라갈 수 있는 몇 가지 구문을 제공해 주실 수 있나요?
답변1
제 생각에는이 답변이것이 당신이 찾고 있는 것입니다.
설명을 추가할 수 있도록 여기에 붙여넣습니다.
rsync
다음 방법을 사용하여 자금을 이체 할 수 있습니다 .rsync --chmod=u+rwx,g+rwx,o+rx file.txt user@host:abc/
그러면 파일이 홈 내의 디렉터리로 이동되고 file.txt
지정된 권한도 설정됩니다. 홈 디렉터리 내부에 있는 경로 대신 절대 경로를 설정해야 하는 경우 선행 슬래시를 포함하여 전체 경로를 작성하면 됩니다(예: ).abc
user
host
user
user@host:/abs/path/
을(를) 사용하려는 경우
scp
전송 후 권한을 설정할 수 있습니다.scp file.txt user@host:abc/ ssh user@host 'chmod 755 abc/file.txt'
이는 이전 단계와 동일하지만 먼저 업로드하고 권한이 변경되는 두 개의 명령으로 나뉩니다. 업로드와 마찬가지로 하나의 명령만 사용하여 처리하도록 요청하셨지만 다른 사람들에게 도움이 될 수 있는 추가 옵션이 있다고 생각했습니다.
답변2
실제 PuTTY 애플리케이션은 터미널 에뮬레이터이며 파일 자체를 전송하지 않습니다. 그러나 파일 전송 명령이 psftp
함께 제공됩니다 .pscp
안타깝게도 파일 권한 설정은 허용되지 psftp
도 허용되지도 않습니다pscp
하지만파일을 전송하는 중입니다. 옵션은 파일 타임스탬프를 -p
보존 pscp
하지만 권한은 보존하지 않습니다. 를 사용하는 경우 psftp
파일 전송 명령에는 원격 권한을 지정하는 옵션이 put
없지만 전송이 완료된 후 별도의 명령을 사용하여 파일 권한을 설정할 수 있습니다.mput
chmod
chmod
명령에 대한 자세한 내용은 PuTTY 설명서의 6.2.14장을 참조하세요 psftp
.
파일이 전송되자마자 자동으로 처리하는 기능이 있는 경우 psftp
먼저 다음 방법 중 하나를 사용하여 파일을 전송해야 할 수도 있습니다.
- 다른 디렉토리로
- 또는 임시 파일 이름아니요자동화가 찾고 있는 것과 일치
전송이 완료되면 권한 설정을 사용 chmod
하고 마지막으로 mv
명령을 사용하여 파일을 자동화에서 사용하는 디렉터리로 이동하거나 파일 이름을 실제 의도한 이름으로 바꿉니다.
(POSIX 호환 Unix 스타일 파일 시스템에서 단일 파일 시스템 내에서 파일을 이동하거나 이름을 바꾸는 모든 작업은 다음과 같아야 합니다.원자적 연산즉, 다른 프로세스는 파일 작업을 "아직 완료되지 않음" 또는 "완전히 완료됨"으로 처리하지만 어떤 방식으로든 "진행 중"으로 처리하지 않습니다. 이 속성은 파일이 완전히 전송되고 액세스를 허용하는 권한을 가질 때까지 자동화가 예상하는 파일을 볼 수 없도록 하기 위해 여기에서 사용됩니다. )
또한 이 프로세스는 자동화가 아직 전송 중이거나 전송 중 네트워크 연결 실패로 인해 불완전한 파일을 캡처하지 않도록 보장하는 데도 도움이 됩니다.
예를 들어 다음과 같은 스크립트를 만들 수 있습니다. (예 filetransfer.scr
: )
cd /some/directory
mkdir incomplete_xfer
cd incomplete_xfer
put file.txt
chmod a+rw file.txt
mv file.txt ..
cd ..
rmdir incomplete_xfer
그런 다음 실행하십시오.
psftp remoteuser@remotehost -b filetransfer.scr
또는 원격 측에서 *.xml
파일을 예상하고 다른 접미사가 있는 파일에 반응하지 않는다는 것을 알고 있는 경우 다음을 수행할 수도 있습니다. (대안 filetransfer.scr
)
cd /some/directory
put file.xml file_tmp_incomplete_xfer
chmod a+rw file_tmp_incomplete_xfer
mv file_tmp_incomplete_xfer file.xml