SSHとWGETを使用したWebサイトファイルのバックアップ - 生成されたtarから/ path / to / htdocsを省略します。

SSHとWGETを使用したWebサイトファイルのバックアップ - 生成されたtarから/ path / to / htdocsを省略します。

SSH経由でリモートWebサーバーに接続した後、CentOSリモートWebサーバーで次のコマンドを実行しました。

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 は 1 レベルアップグレードされるか、次のようになります。

$ 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/dirtarballの作成方法によって異なります。.

関連情報