shell自动输入密码结合scp拷贝实现一步操作

做嵌入式开发的同学,特别是应用开发的,几乎每天都是编译app,然后将app放到板子上运行调试。那如何将app放到板子上呢?常用的2种方法:1,通过服务器的共享目录进行挂载 2,使用scp进行拷贝(这个需要板子支持ssh)。之前在某华上班的时候,就使用的方法1,使用起来也蛮方便。不过现在发现使用scp更方便,如下:

#!/bin/shREMOTEIP=make -j16
if [ $? -eq 0 ]; thenread -p "input remote ip:" REMOTEIPif [ ! -z REMOTEIP ]; thensshpass -p "xxx" ssh root@${REMOTEIP} 'killall neutron'if [ $? -ne 0 ]; thenecho "ssh ${REMOTEIP} and execute fail"exit;fisshpass -p "xxx" scp neutron root@${REMOTEIP}:/opt/app/if [ $? -eq 0 ]; thenecho -e "\033[32mscp neutron to ${REMOTEIP} success and ${REMOTEIP} will reboot now\033[0m"sshpass -p "xxx" ssh root@${REMOTEIP} 'reboot'elseecho -e "\033[31mscp neutron to ${REMOTEIP} fail\033[0m"fifi
fi

这个脚本主要实现的是:

1,编译app

2,读入目标板子ip地址

3,ssh登录目标设备,kill掉正在运行的app,不kill是拷贝不成功的,使用killall 程序名就可以

4,使用scp 拷贝app到目标板上

5,拷贝完之后再ssh登录目标板,再执行reboot操作

sshpass -p "密码"  这里用的是root进行登录,所以这个密码就是root的密码。

这个脚本适合非第一次ssh登录,因为第一次ssh登录的时候会有提示选择输入(yes/no)?,还有输入密码,这个可以尝试使用expect编写脚本,这里没作介绍。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部