翼度科技»论坛 云主机 LINUX 查看内容

shell批量执行命令与文件传输脚本

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
shell批量执行命令与文件传输脚本

需求:

对未进行主机信任操作的服务器进行批量操作
实现:

由于ssh只能在交互模式中输入服务器密码进行登录登操作,不便于进行大批量服务器进行巡检或日志采集。sshpass恰好又解决了这个问题,使用ssh -p passwd可以实现命令行输入密码操作,便于进行规模巡检
脚本使用方法:

<ol>首先需要在脚本执行机器上安装sshpass,可以使用yum进行安装
  1. # yum方式安装
  2. yum -y install sshpass
复制代码
tools.sh脚本以及使用方式
[code]#!/bin/bash# 利用sshpass实现对服务器进行批量操作arg_num=$#file=$2cmd=$4c1=$1c3=$3c4=$4c5=$5c6=$6function main(){                if [ $arg_num -ne 4 ] && [[ $c1 != "-f" ]]        then                errorMessage                exit 1        elif [[ $c3 = "-c" ]]        then                valus                doCommand        elif [[ $c3 = "-l" ]] && [[ $c5 = "-s" ]]        then        # sh tools.sh -f hostlist -l hostlist -s /home/        # scp -P 22022 hostlist 192.168.1.1:/home                valus                doScpLocalToServer        elif [[ $c3 = "-s" ]] && [[ $c5 = "-l" ]]        then                valus                doScpServerToLocal        else                errorMessage        fi}function doScpLocalToServer(){        for ip in $iplist        do                 for_num=`expr $for_num + 1`                pd=`echo $passwordlist | awk -v k=$for_num '{print $k}'`                echo -e "\033[32m ->->->->->->->->->->$ip$ip$ip

举报 回复 使用道具