我对 Ubuntu 了解不多;这是我在这里的第一个问题。如果这个问题看起来无效,请原谅。
我被告知有可能运行一些使用 SFTP 的 SSH 命令。
如果可能的话,通过 SFTP 远程运行的支持命令列表是什么?(SSH 命令或 SSH 仿真);不是 PUT、GET 等。
我尝试实现的场景如下:
- 对大量文件进行压缩。
- 通过 sFTP 上传。
- 使用 sFTP 解压(如果支持);不能通过 SSH 解压
或者至少如果可能的话;创建一些 bash 脚本并通过 sFTP 运行
更新:我还有另一个相关问题;是否可以使用 SFTP 编辑文件?在远程文件中附加或编辑一行?
是否需要 sFTP 服务器兼容性?
请提供建议,并分享完整列表或进一步阅读的链接!谢谢
答案1
您只能使用 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 的一个常见用例是监禁用户并提供文件访问权限,但不允许运行任何命令。
除了压缩之外,也许还可以使用以下-C
选项sftp
:
-C Enables compression (via ssh's -C flag).
答案2
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
是的,您可以将这样的行添加到批处理中,并让其执行该脚本。