本地shell脚本中ssh到远程服务器并执行命令
1、首先配置ssh免密操作
Linux 下实现SSH互信: https://www.jianshu.com/p/2456d98aa607
2、简单命令
ssh root@192.168.1.1 "cd /var/lib; ls; cd "
2.1 使用时注意,双引号必须有。若没加双引号,第二条及之后的命令会在本地执行
2.2 分号是将两条语句间隔开
2.3 单双引的区别:单引号不会解析值,是什么就传什么;双引号会解析值,将解析结果传过去
3、多条命令
ssh root@192.168.1.1<< reallssh
cd /var/lib/test
tar -zxvf api.com.tar.gz
......
exit
reallssh
3.1 命令写在 << reallssh(开始) 至 reallssh(结束) 之间
3.2 reallssh可自己定义为其他形式
3.3 在结束前加上exit退出远程
4、可能遇到的问题
问题:远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误
解决方案:字面意思是伪终端将无法分配,因为标准输入不是终端。
所以需要增加-t -t参数来强制伪终端分配,即使标准输入不是终端。
to force pseudo-tty allocation even if stdin isn’t a terminal.
参考样例如下:
ssh -t -t user1@192.168.1.1 -p 22
--------------------------------------------------------------------------------
参考:https://blog.csdn.net/jinking01/article/details/84386769
如何编写一个shell脚本
我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。 变量 在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写: 变量名=值 取出...
请教会linux shell脚本的=~是什么意思?
是正则表达式的字符判断 if [[ $i =~ ^[0-9]+$ ]] && echo 1 1、^是匹配字符串开始的意思,[0-9]只要不是数字都不要。2、~ +的意思的^[0-9]的范围里匹配一次以上+ $是匹配结束符。touch -t "201109021200.00" tempfile 使用引号内的时间戳在当前目录建立一个叫tempfile的文件 find...
如何在shell脚本里调用另一个shell脚本
可以将通用脚本获取的结果直接输出,比如你的通用脚本在\/path\/to\/getDate.sh 内容比如如下:echo "2013-02-26"然后在另外一个脚本里可以这样获得它的输出 Date=`sh \/path\/to\/getDate.sh`注意这里不是引号,而是反引号就是Esc下面1左边的键 现在Date变量的值就是"2013-02-26"...
LINUX快速入门第八章:Shell基础
与一般命令相比,Shell 除了是一个命令行解释器,同时还是一门功能强大的编程语言,易编写,易调试,灵活性较强。作为一种命令级语言,Shell 是解释性的,组合功能很强,与操作系统有密切的关系,可以在 Shell 脚本中直接使用系统命令。大多数 Linux 系统的启动相关文件(一般在 \/etc\/rc.d 目录下)都...
shell脚本中将svn的代码checkout到生产服务器的 "指定目录" 中的命 ...
[root@localhost ~]# vim dd5 !\/bin\/bash svn_dir=$1 mkdir -p $svn_dir cd $svn_dir svn checkout svn:\/\/192.168.1.1\/pro\/domain
shell脚本定位某个文件中特定位置的字符串并进行替换应该怎么写?_百度...
根据位置替换即可:read ipsed -ri "\/subnet\/s\/(subnet )[^ ]+( netmask.*)\/\\1$ip\\2\/" \/mnt\/file\/subnet\/ - 先正则匹配到含有subnet的行,然后替换。替换的时候将不变的部分用小括号括起来,后面依次用\\1 , \\2 原封不动地引用回来。-r 选项用于支持扩展正则,这样就不需要额外的转义符...
shell编程中,如何将编写的脚本把其脚本名当做shell命令来使用_百度知 ...
首先确保你的shell脚本正确,且有执行权限。然后sudo cp 目录\/你的脚本文件名 \/bin\/你的脚本文件名 然后就可以了。直接用 你的脚本文件名当作shell命令了。看我的例子 sudo cp \/home\/blue\/mvmv.sh \/bin\/mvmv.shmvmv然后我的桌面上的stop文件就变成了STOP了。(因为我的shell脚本如下)!\/bin\/bash...
分享70个经典的 Shell 脚本面试题与答案
14) 如何检查文件系统中是否存在某个文件 ?15) 写出 shell 脚本中所有循环语法 ?for 循环 :while 循环 :until 循环 :16) 每个脚本开始的 #!\/bin\/sh 或 #!\/bin\/bash 表示什么意思 ?这一行说明要使用的 shell。#!\/bin\/bash 表示脚本使用 \/bin\/bash。对于 python 脚本,就是 17) 如何获取...
shell脚本是什么
释你的输入,并且处理各种各样的操作系统的输出结果。 shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输 入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被 重复使用。本质上,shell script是命令行...
如何在linux下shell编写脚本中模拟键盘输入
用 yes 命令 如 yes 123 可以不停的输出 123,你可以用 yes 123 | head -3 输出三次。然后你要是要对某个程序做输入,你用输入重定向。如果你说的是应答,那就用 expect,具体的用法就复杂了,自己搜教程系统地学习吧。
闽岭鹿胎: 先在两台机子上建立信任,ssh-key 具体方法百度下就有 脚本里的命令是 ssh 用户@ip
金平苗族瑶族傣族自治县18344196530: 在LINUX系统下,如何使用SHell脚本,SSH登陆上路由器 - ?
闽岭鹿胎: 1.登陆linux系统,打开终端命令.输入 rpm -qa |grep ssh 查找当前系统是否已经安装2.如果没有安装SSH软件包,可以通过yum 或rpm安装包进行安装3、安装好了之后,就开启ssh服务.Ssh服务一般叫做 SSHD4、命令行输入 service sshd start ...
金平苗族瑶族傣族自治县18344196530: 如何用shell脚本实现SSH的远程登录 - ?
闽岭鹿胎: 要带跳过输入密码的环节么?如果你想每次链接的时候自己手动输入密码,那就参考这样写#!/bin/bash ip=$1 ssh 用户名@ip地址 -p端口号 保存后给执行权限,运行时在脚本后面直接跟一个IP地址 如果你想每次链接的时候自动跳过输入密码的环境,那就再百度下“ssh建立信任关系”,脚本依然还是这个脚本,只是登陆的时候做了互相信任的话,就不需要密码了
金平苗族瑶族傣族自治县18344196530: shell脚本通过ssh登录到服务器进行操作 - ?
闽岭鹿胎: #命令用;号或&&分割没错,但需要加上"号即可.#来自:DZ动力(verydz.com) ssh 59.43.50.82 "gunzip /export/home/kaohe/tmp/$name/*.gz; /iteview/youwenjie/work.sh"
金平苗族瑶族傣族自治县18344196530: linux下如何使用shell脚本进行ssh远程登陆到其他机器执行停止进程的命令. 用户名/密码:test/12345h - ?
闽岭鹿胎: ssh test@10.1.1.8 输入密码,登陆成功后 ps -ef 查看进程pid 或者 netstat -ntpl kill -9 进程pid
金平苗族瑶族傣族自治县18344196530: 我想写一个shell脚本,然后在脚本里实现操作远程电脑: - ?
闽岭鹿胎: ssh root@ip "...所有安装命令写在此处" 或者 写一个mysql安装脚本,假设mysql.sh ssh root@ip
金平苗族瑶族傣族自治县18344196530: 利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集 - ?
闽岭鹿胎: 假设从主机A,检查主机B上的进程,需要在主机B上建立检查用户,例如叫x,并设置通过public key认证登录SSH,不会可以google搜一下,然后,在A机器上执行:ssh x@B ~/command.sh > result.txt command.sh就是B机器上放置在x目录下的脚本.输出结果应该是写到了result.txt 或者另一种写法 result=`ssh x@B ~/command.sh` 结果直接保存到result变量中了.暂时没有linux环境,所以没有实际测试,你自己试试吧
金平苗族瑶族傣族自治县18344196530: 怎么在一个shell脚本中执行远程主机的另一个shell脚本?? ssh已经可以无密码登录了. - ?
闽岭鹿胎: 假设你要操作的是远程服务器 IP为:1.1.1.1 操作的脚本是 :/home/a.sh 操作命令为 ssh 1.1.1.1 “/bin/bash /home/a.sh”
金平苗族瑶族傣族自治县18344196530: linux下如何使用ssh远程登录主机 执行shell脚本? - ?
闽岭鹿胎: linux主机登录另外一台linux服务器,直接在命令行提示符下输入: ssh 账号@IP地址即可比如: ssh oracle@192.168.10.13 然后按照提示输入密码. 一切无误则进入该远程主机.
金平苗族瑶族傣族自治县18344196530: 怎么开启linux下的SSH远程连接? - ?
闽岭鹿胎: ssh是可以代替telnet的一种远程管理的方式.并且具有安全\快捷等优点的一种服务. 方法一:进入Xwindows, 在shell窗口执行setup命令,选择system service启动sshd服务. 方法二:在/etc/ssh/sshd_config 文件中,将permitRootLogin no|yes设置为允许root用户远程登录 /etc/init.d/sshd start 启动ssh服务 /etc/init.d/sshd stop关闭服务