shell ssh远程执行命令

[root@backup shell]# vi backup.sh 

#!/bin/sh
  ipAddress=172.17.167.38
  ssh -tt  root@$ipAddress -p 22  << remotessh
  source /shell/backup.sh
  exit
remotessh

  find /backups/ -ctime +7 -exec rm -fv {} ;
  ls /backups/

  注意:如果ssh没加tt参数(表示不为这个连接分配TTY,这里非得用两个tt才不会报错),可能会报Pseudo-terminal will not be allocated because stdin is not a terminal的错

所有shh参数如下:

-1:强制使用ssh协议版本1; 
-2:强制使用ssh协议版本2; 
-4:强制使用IPv4地址; 
-6:强制使用IPv6地址; 
-A:开启认证代理连接转发功能; 
-a:关闭认证代理连接转发功能; 
-b:使用本机指定地址作为对应连接的源ip地址; 
-C:请求压缩所有数据; 
-F:指定ssh指令的配置文件; 
-f:后台执行ssh指令; 
-g:允许远程主机连接主机的转发端口; 
-i:指定身份文件; 
-l:指定连接远程服务器登录用户名; 
-N:不执行远程指令; 
-o:指定配置选项; 
-p:指定远程服务器上的端口; 
-q:静默模式; 
-X:开启X11转发功能; 
-x:关闭X11转发功能;
-y:开启信任X11转发功能。
-n:表示只连接远程主机,不打开远程shell;
-t:表示不为这个连接分配TTY

  

原文地址:https://www.cnblogs.com/amoyzhu/p/7831315.html