1. 程式人生 > >ssh-免密登錄批量發送腳本

ssh-免密登錄批量發送腳本

logs -1 expect 服務 發送 節點 exp ssh nod

1.新建node文件(文件中為需要發送的節點,不能包含主文件服務器)

node01
node02
node03
node04

2.ssh的免密登錄批處理腳本(需要同級目錄下的nodes文件)

#!/bin/bash
PASSWORD=password

auto_ssh_copy_id() {
    expect -c "set timeout -1;
        spawn ssh-copy-id $1;
        expect {
            *(yes/no)* {send -- yes\r;exp_continue;}
            *assword:* {send -- $2\r;exp_continue;}
            eof        {exit 0;}
        }
"; } cat nodes | while read host do { auto_ssh_copy_id $host $PASSWORD }&wait done

3、scp批處理(需要同級目錄下的nodes文件),即下文命令中的scp.sh

#!/bin/bash
cat nodes | while read host
do
{
    scp -r $1 $host:$2
}&wait
done

4、ssh批處理(需要同級目錄下的nodes文件),即下文命令中的ssh.sh

#!/bin/bash
cat nodes | while
read host do { ssh $host $1 }&wait done

使用scp批處理拷貝/etc/sysctl.conf到各節點

./scp.sh /etc/sysctl.conf /etc/

使用ssh批處理生效

./ssh.sh "sysctl -p"

ssh-免密登錄批量發送腳本