web-dev-qa-db-ja.com

SFTPを使用してSSHコマンドを実行することは可能ですか?

Ubuntuについてあまり知らないようにしてください。これが私の最初の質問です。質問が無効に見える場合は、すみません。

一部を実行可能 SFTPを使用したSSHコマンドと言われました。

それが可能なら; SFTPをリモートで実行するためにサポートされているコマンドのリストは何ですか? (SSHコマンドまたはSSHエミュレーション); PUT、GETなどではありません。

私が達成しようとしているシナリオは次のとおりです。

  1. 多数のファイルを圧縮します。
  2. SFTPを介してアップロードします。
  3. SFTPを使用して解凍します(サポートされている場合)。 SSHではない

または、少なくともそれが可能であれば。いくつかのbashスクリプトに折り目を付けてsFTPを実行するには

更新:別の関連する質問があります。 SFTPを使用してファイルを編集することはできますか?リモートファイルの1行を追加または編集しますか?

SFTPサーバーの戦闘能力が必要な線量?

完全なリストへのリンクまたはさらに読むためにリンクを共有できるかどうかアドバイスしてください!ありがとうございました

1
wpcoder

SFTPを使用してローカルシステムでのみコマンドを実行できます。 helpを実行して、使用可能なコマンドを確認します。

sftp> help
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afPpRr] remote [local]       Download file
reget [-fPpRr] remote [local]      Resume download file
reput [-fPpRr] [local] remote      Resume upload file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afPpRr] local [remote]       Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local Shell
!                                  Escape to local Shell
?                                  Synonym for help

ご覧のとおり、次のようなSFTPコマンドはありません。

  • リモートシステム上でコマンドを実行できます。ローカルコマンドには!のみがあります。
  • ファイルの追加または編集を許可します。ファイルを取得し、ローカルで編集して元に戻すことができます。

SFTPの一般的なユースケースは、ユーザーを投獄し、コマンドを実行することなくファイルアクセスを提供することなので、このようなものが存在することは期待していません。

Zip圧縮する代わりに、-Cオプションとsftpを併用することもできます。

 -C      Enables compression (via ssh's -C flag).
1
muru

sshは次の構造に従います。

ssh {user}@{IP} {command}

{user}を指定しない場合、現在のユーザーが使用されます。コマンドを追加しない場合は、システムに接続してプロンプトが表示されます。コマンドを追加すると、コマンドが実行されます。リモートシステムからの日付を示す例:

ssh 1.1.1.1 date
[email protected]'s password:
Tue Nov  7 11:17:40 CET 2017

さらにいくつかの例...

ssh 1.1.1.1 'df -H'
ssh 1.1.1.1 uname -mrs
ssh 1.1.1.1 lsb_release -a

 ssh 1.1.1.1 gzip /tmp/test
 [email protected]'s password:
 ssh 1.1.1.1
 $ pwd
 /tmp
 $ ls -ltr test.gz
 -rw-rw-rw- 1 rinzwind rinzwind 688 Nov  7 11:18 test.gz

そして、そのような行をバッチに追加して、そのスクリプトを実行させることができます。

0
Rinzwind