SSH 및 WGET을 사용하여 웹 사이트 파일 백업 - 생성된 tar에서 /path/to/htdocs를 생략합니다.

SSH 및 WGET을 사용하여 웹 사이트 파일 백업 - 생성된 tar에서 /path/to/htdocs를 생략합니다.

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

tarchdir다음 명령을 사용하여 디렉터리를 입력 할 수 있습니다 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이 만들어진 방법에 따라 달라집니다 ..

관련 정보