scp:トランザクションログを維持しますか?

scp:トランザクションログを維持しますか?

scpリモートサーバーにファイルがあるとします。

scp /file root@<ip>:/file

リモートサーバーでは、SCPは次のファイルを表示します。/file

つまり、「受信」に分類されます。

この情報をファイルに反映できますか?

 echo "incoming:/file" >> /scp_logs

修正する:

それとも...scpファイルをリモートサーバーに転送した後(サーバーから切断する前に)コマンドを実行するように構成できますか?

これにより追加できます。

 echo "incoming:/file" >> /scp_logs

ファイルを転送するときに使用してください。

答え1

もうダメだ。いくつかのリモートコマンドを使用して通常のセッションを実行しますscpが、バイナリにハードコードされています。したがって、クライアントバイナリを変更してコマンドを送信できます。sshscpecho

または、スクリプトを使用してサーバーにこのポリシーを適用すると、スクリプトはForceCommand環境SSH_ORIGINAL_COMMAND変数を確認し、その場合はscpパラメータをログに保存します。

ただし、scpコマンド(たとえば)を実行すると、scp file1 file2 server:/path/サーバーはリモートパスのみを表示できるため、問題は解決されません。ファイルが実際にアップロードされる実際のパスを取得するには、scpサーバーのバイナリを変更してロギングを実行する必要があります(open()呼ぶ)。

したがって、ファイルのアップロードを監査する方法を探している場合、scpこの方法は適切ではありません。を使用する方が良いでしょうsftp。すべてのコマンドをすぐに記録します(有効になったらLogLevel VERBOSE)。

関連情報