在日常工作中,难免会遇到需要利用shell脚本往其他服务器复制文件、执行命令的场景,sshpass很好的解决了这个问题,使用起来也相对简单。首先需要安装sshpass工具,网上有很多教程,本文提供了centos7版本的下载链接及安装方式。请参考链接下载:
CentOS7 版本对应的sshpass下载地址请移步 https://download.csdn.net/download/yxj171273860/85243157
1.安装sshpass
rpm -ivh sshpass-1.06-1.el7.x86_64.rpm
2.查看sshpass版本
sshpass -V
执行结果如下
3.利用sshpass命令远程执行命令
sshpass -p 服务器密码 ssh -tt -n -p 服务器ssh端口 -o ConnectTimeout=20 root@服务器IP "docker restart nginx"
4.利用sshpass命令复制文件至目标机器
sshpass -p 服务器密码 scp -P 服务器ssh端口 -o ConnectTimeout=20 -r ./nginx.conf root@服务器IP:/home/nginx/
其中./nginx.conf 替换成需要复制的文件路径,/home/nginx替换成目标服务器的路径