zoukankan      html  css  js  c++  java
  • 利用sshpass解决ssh与scp交互密码验证,tee -a 写日志与终端

    众人所知,利用ssh与scp连接远程linux主机与传输文件的时候需要交互式的输入密码,有时候我们写脚本的时候,需要自动的输入密码,ssh可以利用密钥方式免输入密码。今天我所讲的是利用sshpass(google一下下载)进行非交互式输入密码。据说也可以利用except,具体的用法你可以google一下,我今天只讲sshpass的用法。
    #!/bin/sh
    #在打包目录自动对设备进行升级
     
    PASSWORD=admin@rizhi
    USERNAME=root
     
     
    FILENAME=log.txt
    IP="200.200.103.1,200.200.103.3,200.200.103.7,200.200.103.9"
     
    LOG_NAME=auto_update_log.txt
     
    #打印错误代码并退出
    die()
    {
    ecode=$1;
    shift; 
    echo "$*, exit $ecode$" | tee -a $LOG_NAME;
    exit $ecode;
    }
    #[ $#  -lt 2 ] && usage
     
    update_device()
    {
    iparr=`echo $IP | sed 's/,/ /g'`
    echo "IP = [$iparr]" | tee -a $LOG_NAME
    for iptem in $iparr
    do
    iptem=`echo $iptem | sed 's/ //g'`
     
    echo "auto_update device ${iptem} ${CGREEN}step 1:upload ${FILENAME}...${C0}" | tee -a $LOG_NAME
    sshpass -p ${PASSWORD} scp -P 222 vtp.pkg ${USERNAME}@${iptem}:/sf/ | tee -a $LOG_NAME
    if [ $? -ne 0 ]; then
    echo "${CRED}auto_update device ${iptem} step 1:upload ${FILENAME} FAILED!${C0}" | tee -a $LOG_NAME
    continue
    fi
     
    echo "auto_update device ${iptem} ${CGREEN}step 2: update from pkg...${C0}" | tee -a $LOG_NAME
    sshpass -p ${PASSWORD} ssh -p 222 ${USERNAME}@${iptem} "cd /sf;chmod u+x vtp.pkg;if [ $? -eq 0 ];then reboot;else echo update fail;fi" | tee -a $LOG_NAME
    if [ $? -ne 0 ]; then
    echo "${CREAD}auto_update device ${iptem} step 2:update from pkg FAILED!${C0}" | tee -a $LOG_NAME
    continue
    fi
    done
    }
     
    main()
    {
    update_device
    rm -f vtp.pkg
    }
     
    main $*
    exit 0
    由以上代码:红色标记的则为重点使用sshpass传入密码给scp和ssh,并进行操作。
    我在代码中利用tee -a $LOG_NAME,这是把打印的信息既可以打印大终端(屏幕)有可以写入$LOG_NAME 中。在使用sshpass之前你要安装它才行。
  • 相关阅读:
    再深一点:如何给女朋友解释什么是微服务?
    图文详解:内存总是不够,我靠HBase说服了Leader为新项目保驾护航
    Java多态总结
    猴子吃桃问题(南阳ACM324)
    杭电acm-2007平方和立方和
    出现错误,修改后的
    今天的第一个程序-南阳acm输入三个数排序
    Azure Blob上传和下载
    用Aspose.Cells把Excel文件转成PDF
    Ionic IOS打包第二节
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3253781.html
Copyright © 2011-2022 走看看