SSH远程执行命令/脚本
简单命令
- 一条
ssh root@hh.demo.net "ls -la" total 1536 drwx------ 6 root root 4096 Nov 8 13:17 . drwxr-xr-x 22 root root 4096 Nov 8 11:36 .. -rw------- 1 root root 1317 Nov 8 16:10 .bash_history -rw-r--r-- 1 root root 3106 Apr 9 2018 .bashrc drwx------ 3 root root 4096 Jun 24 18:10 .cache drwx------ 3 root root 4096 Jun 25 02:06 .gnupg -rw------- 1 root root 207 Nov 8 11:43 .mysql_history drwxr-xr-x 2 root root 4096 Jun 24 18:10 .pip -rw-r--r-- 1 root root 148 Aug 17 2015 .profile -rw-r--r-- 1 root root 205 Nov 7 17:28 .pydistutils.cfg drwx------ 2 root root 4096 Nov 8 11:33 .ssh -rw------- 1 root root 11904 Nov 8 13:17 .viminfo
- 执行多条
命令间使用 ; 间隔,当命令多于一个时最好用引号括起来,否则在有的系统中除了第一个命令,其它都是在本地执行的。ssh root@hh.demo.net "df -lh; date" Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 395M 2.8M 392M 1% /run /dev/vda1 20G 4.0G 15G 22% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup tmpfs 395M 0 395M 0% /run/user/0 Fri Nov 8 16:14:50 CST 2019
需要交互的命令
使用-t参数,让系统分配tty给ssh保持登录状态。如:
ssh -t user@hh.demo.net "sudo apt update"
多行命令
用单引号或双引号开头,然后输入命令,最后再用相同的引号来结束。如:
ssh root@hh.demo.net '
> ls
> date
> pwd
> '
demo.sql
Fri Nov 8 16:22:09 CST 2019
/root
如果需要在命令中使用变量,那么需要添加-c参数。
运行客户端脚本
使用重定向 < 在远程服务器上执行本地脚本。如:
ssh root@hh.demo.net < script.sh
如果执行脚本需要带入参数,ssh通过bash -s 参数指定。
ssh root@hh.demo.net 'bash -s' < script.sh param
运行服务器脚本
如同执行简单的远程命令,直接指定脚本路径就可以了,但是要注意使用绝对路径和系统的PATH。
如果需要带入脚本参数,可直接跟在命令后边。如:
ssh root@hh.demo.net /root/script.sh param
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 irvin.em@live.com。
文章标题:SSH远程执行命令/脚本
文章字数:538
本文作者:dino
发布时间:2019-11-08, 14:20:26
最后更新:2019-11-08, 21:21:25
原始链接:https://blog.walkbc.com/2019/11/08/SSHRemote/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。
QQ交流群:273078549