Linux Shell远程交互命令

本文介绍了如何使用Linux Shell进行远程命令执行和数据拷贝。通过scp命令实现文件的远程拷贝,同时讲解了如何在ssh下执行多个命令,强调了命令需用引号括起并用分号隔开。对于复杂的远程执行任务,文章推荐使用脚本方式,利用SSH结合此处输入的特殊标记来执行多行命令,并提示如何避免显示远程输出及在执行完毕后退出远程节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scp实现数据的拷贝

其他机子copy到本地文件:scp username@hostname/IP:filepath localpath
本地copy到其他机子:scp localpath username@hostname/IP:filepath
文件夹copy: scp -r username@hostname/IP:folderpath localpath

如果远程机子加密或使用安全机制,我们可能运行这个命令就需要输入密码,为使自动化,可以
#在脚本所在服务器上操作
ssh-keygen -t rsa
出来的提示可以用默认值,然后将产生的公共密钥传到目标机器
scp ~/.ssh/id_rsa.pub username@远程机器IP:/userhome/.ssh/authorized_keys

可是如果当前的用户不具备执行上述操作的时候,我们就需要先将id_rsa.pub里面的内容拷贝出来,复制追加到远程机器的authorized_keys中。内容一般如下:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5gkiQUSlV+o8Zpp4ADV60Mb68p5aGFkQmfXWo6TYZZdUhqW+ShtKZygvtfVS1N33WEXzqGM2WuOMGiO5NnGgmnyHsQkUoMq2cIfiLFjxo2HhPUWq2LLipJ3BZRlRqgC+E7GYgstzaNEwBJ8PxIswG4bd/RcT4TexayN6z0JbDkiboNVCfUz/JWrdJk6SVjm4SofsIcKr1NRr3YFymPEJKcZfF+22wvyNFlfHKGNEjI+ihPWNB6oh/EsHEyNU//7O7rLQfZx9W8a/XmwH/kPed1Io01qgqahv0FJZJ4rQ54w7d7xi9hpQRyl1IXUpfEq39v+GIDvuYXIatH955Jd/Ow== username

scp -i ${KEY} -o GSSAPIAuthentication=no (-r) sourcepath username@hostname:destpath}


Shell远程执行命令

必须要配置ssh免密码登陆。

如果是简单执行几个命令,则:

ssh username@hostname "cmd1;cmd2"
ssh tan@10.199.20.220 'ls ~/mnt/builds|grep 2.5'

Note

1. ssh后面如果想要在远程机子上执行的命令必须要有单引号或者双引号。如果不加双引号,第二个命令在本地执行

2. 两个命令之间用分号隔开

对于脚本的方式:

  有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现:

复制代码
#!/bin/bash
ssh user@remoteNode > /dev/null 2>&1 << eeooff
cd /home
touch abcdefg.txt
exit
eeooff
echo done!
复制代码

  远程执行的内容在“<< eeooff ” 至“ eeooff ”之间,在远程机器上的操作就位于其中,注意的点:

  1. << eeooff,ssh后直到遇到eeooff这样的内容结束,eeooff可以随便修改成其他形式。
  2. 重定向目的在于不显示远程的输出了
  3. 在结束前,加exit退出远程节点
参考: http://blog.youkuaiyun.com/xifeijian/article/details/9364497
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值