自动scp然后ssh登录,执行远程命令

本文介绍了一种利用Expect脚本实现远程服务器上文件传输及命令执行的方法。通过具体示例展示了如何设置密码、主机地址及执行特定命令,适用于需要自动化远程操作的场景。

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

#!/usr/bin/expect
set password 123456
set host 191.168.4.249
set command "rmmod pcie_loader.ko && insmod pcie_loader.ko"
spawn scp pcie_loader.ko root@191.168.4.249:/root
expect "*password:"
send "$password\r"
expect eof.

spawn ssh 191.168.4.249 $command
expect "*password:"
send "$password\r"

expect eof.




#!/usr/bin/expect
set password Dev@Thinputer


set host [lindex $argv 0]


set timeout -1 
set command "killall ocm-client"


spawn ssh -o GSSAPIAuthentication=no $host $command
expect {
                 "connecting (yes/no)?"    {send "yes\r";exp_continue}
                 "*password:"    {send "$password\r";exp_continue}
               
       }


spawn scp -o GSSAPIAuthentication=no ocm-client root@$host:/root
expect "*password:"
send "$password\r"
expect eof.

Shell脚本是一组以文本文件形式存储的命令,可让用户批量自动运行多个命令而不需要手动输入。SCPSSH命令是Linux下常用的文件传输和远程连接命令,通过Shell脚本可以方便的执行它们。 SCP命令可以用于文件传输,它的格式如下: scp [参数] [源文件] [目标文件] 其中,参数通常包括指定端口、指定协议等。源文件可以通过本地路径或远程路径指定,目标文件也可以是本地路径或远程路径。为了脚本能够正常执行,需要预先设置好远程主机的IP地址、用户名和密码。 SSH命令则用于远程连接,常用于远程登录执行远程命令等操作。可以用以下格式执行SSH命令ssh [参数] [用户名@]远程主机 参数通常包括指定端口、指定密钥文件、禁用远程终端等。远程主机可以通过IP地址或域名进行指定。需要注意,如果通过密码进行连接,需要在Shell脚本中设置好密码。 通过Shell脚本执行SCPSSH命令的流程通常是先判断操作系统类型,然后运行SCPSSH命令。常见的Shell脚本语言包括Bash、Zsh、Ksh等,使用不同语言写出的脚本可能存在差异。在执行SCPSSH命令的过程中,需要注意验证端口、用户名、密码等信息,确保连接和传输的安全性。 最后,需要提醒的是,在使用SCPSSH命令传输和连接时,需要遵循Linux安全最佳实践,如禁用root用户登录、使用非默认端口等。同时,在编写Shell脚本时,需要注意脚本语言的规范,以及安全性的验证和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值