この質問をどこに尋ねるべきかわからないので、ここが適切でない場合は、教えてください。
今日、私は再帰的なscpを使用して2つのLinuxサーバー間でディレクトリをコピーしようとしましたが、ターゲットサーバーを参照するときにタイプミスを犯しました。ディレクトリを別のシステムに転送するのではなく、ファイルを自分自身に転送し始めます。ディレクトリが大きすぎて何をしているのかを知るのに少し時間がかかりましたが、それが殺されるまで転送状態で同じファイルが表示され続けるのを見始めました。これが許されるか混乱しています。いくつかの質問があります。
私がすべての人に尋ねたい主な質問は、ユーザーが同じコンピュータに自分自身でセキュリティコピーを作成する必要がある状況ですか?それともscpを無視する不要な副作用ですか?
編集 - 申し訳ありません。実際のコマンドは次のとおりです。
scp -r /path/to/dir SameUser@sameserver:/path/to/dir
答え1
同じコンピュータにファイルをコピーする場合はscp
まったく必要ありません。とにかく、ホスト名とパスの代わりにディレクトリやファイルをターゲットに指定するとローカルにコピーされますが、これが起こるようです。使用するコマンドラインを提供すると、正確に何が起こっているのかを知らせることができます。
編集する:
ネットワークインターフェイスを介してローカルコンピュータのSSHDサーバーに接続し、複製に使用される提供されたコマンドラインを使用します。使用できるので、妥当な理由はありませんcp
。
答え2
これはほとんど役に立たない特別なケースです。しかし、これを検出することは難しく、寂しく、役に立ちません。
難しいです。同じコンピュータに同じユーザーがいるかどうかはどうすればわかりますか?ssh $USER@localhost
同じアカウントに連絡することなく、scp
プログラムがいつもわからないまれなケースがたくさんあります。たとえば、
localhost
ssh_config
フレームワークに縛られませんが、正当なDNSまたはエイリアスのためにローカルコンピュータを指していません。ssh
chrootの内部で呼び出されましたが、sshサーバーはchrootの外部または他のchrootで実行されています。- ローカルコンピュータのSSHポートは、他のコンピュータへの接続を返します。
scp
リモートサイトの制限された権限セッションで呼び出されると、scp $USER@localhost
ユーザーのデフォルト権限は変更されません。
scp
多くの人々の行動を複雑にするので有害です。もはや「ファイルをコピーしてSSHを転送として使用する」ではありません。 「ファイルをコピーし、ソースとターゲットが同じシステムで同じユーザーとして検出されない限り、SSHを転送として使用します。」吐き気。その後、誰かがscpを使用するスクリプトを作成し、システム名とユーザー名をパラメータとして使用する場合は、スクリプトに特別なケースを含める必要があります。つまり、ソースとターゲットが同じマシン上で同じアカウントである場合は、cp
insteaを呼び出す必要がありますscp
。脚本家はscp
完全に論理的でなければなりません。
できるだけ多くのスペルエラーの1つしか見つからないため、役に立ちません。なぜ面倒?別のサーバーの名前を入力したか、パスまたはユーザー名を誤って入力した可能性があります。