![SSH 및 WGET을 사용하여 웹 사이트 파일 백업 - 생성된 tar에서 /path/to/htdocs를 생략합니다.](https://linux55.com/image/210390/SSH%20%EB%B0%8F%20WGET%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9B%B9%20%EC%82%AC%EC%9D%B4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EB%B0%B1%EC%97%85%20-%20%EC%83%9D%EC%84%B1%EB%90%9C%20tar%EC%97%90%EC%84%9C%20%2Fpath%2Fto%2Fhtdocs%EB%A5%BC%20%EC%83%9D%EB%9E%B5%ED%95%A9%EB%8B%88%EB%8B%A4..png)
SSH를 통해 원격 웹 서버에 연결한 후 CentOS 원격 웹 서버에서 다음 명령을 실행했습니다.
tar -vcf remote_name.tar /home/remote_name/public_html
내 로컬 시스템(Debian 기반)에서 다음 명령을 실행합니다.
user@linux-mx21:/var/www/html
$ wget https://example.com/remote_name.tar
$ mkdir remote_name
$ tar -vxf remote_name.tar --directory ./remote_name
모든 것이 괜찮지만... 나는 dir 구조의 결과가 다음과 같이 되는 것을 원하지 않습니다:
/var/www/html/remote_name/home/remote_name/public_html/
(public_files 및 dirs_extracted_here).
대신 결과가 다음과 같기를 바랍니다.
/var/www/html/remote_name/
새 위치의 결과 파일,
/var/www/html/remote_name
상위 디렉터리 구조를 제외하고 원래 위치의 미러가 됩니다.
내 명령의 결과가 위와 같으므로 현재 있는 파일을 /var/www/html/remote_name/home/remote_name/public_html
내가 원하는 위치에서 이동해야 합니다 /var/www/html/remote_name/
. 이 단계를 건너뛰고 명령을 개선하고 싶습니다.
원격 위치에서 SSH를 사용할 때 필요에 따라 명령에 w/args를 설정할 수 있다고 생각 tar
하지만 원하는 효과를 얻기 위한 올바른 매개 변수를 모르겠습니다.
도와주셔서 감사합니다!
답변1
tar
chdir
다음 명령을 사용하여 디렉터리를 입력 할 수 있습니다 C
.
$ mkdir -p a/b/public_html
$ touch a/b/public_html/index.html
$ tar vCcf a/b/public_html remote_name.tar .
a .
a ./index.html
이는 현재 디렉토리를 기준으로 tarball을 만듭니다
a/b/public_html
. 그러나 이는 일반적이지 않고 무례한 것으로 간주될 수 있습니다. 다른 사람들이 tarball을 확장하면 기본적으로 홈 디렉토리의 모든 파일이 포함되기 때문입니다. 만약 당신이 타르볼을 사용하는 유일한 사람이라면 이것은 문제가 되지 않을 것입니다.
보다 일반적으로 tarball은 한 수준 업그레이드되거나 다음과 같습니다.
$ rm remote_name.tar
$ tar vCcf a/b remote_name.tar public_html
a public_html
a public_html/index.html
그런 다음 확장 측에서 chdir
상위 명령에서 적절한 작업을 수행해야 합니다.
cd some/dir && tar xf remote_name.tar
또는 tar
명령 자체 내에서
tar xCf some/dir remote_name.tar
정확한 내용은 덜 일반적인 디렉토리인지, 보다 일반적인 상위 디렉토리인지 some/dir
여부에 따라 tarball이 만들어진 방법에 따라 달라집니다 ..