微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux 带ssh和scp功能的集群控制脚本

#!/bin/bash
#创建一个以.sc结尾的文件,把要操作的主机按顺序填写进去,多个IP另起一行顶格填写例如:
#192.168.0.1
#192.168.0.2
#确保当前操作脚本的主机,已经可以免密到被操作主机,如未完成请自行解决。
do_command()
{
        hosts=`sed -n '/^[^#]/p' *.sc`
        for host in $hosts
                do
                        echo ""
                        echo HOST $host
                        ssh $host "$to_input"
                done
        return 0
}

scp_command()
{
        hosts=`sed -n '/^[^#]/p' *.sc`
        for host in $hosts
                do
                        echo ""
                        echo HOST $host
                        scp -r ${to_scp#*/} $host:/tmp
                done
        return 0
}
ps3="按数字选择要执行的模式: 1)bash 或 2)scp (退出按Ctrl+c): "
select to_chose in ssh scp;do
        case $to_chose in
        ssh)

        read -ep "输入Linux命令如(ls,df,free...):" to_input
        echo "------------------------------------------------------------------------->"
        echo -e "\033[31m执行命令 : "$to_input" \033[0m"
        do_command "$to_input"
        echo "------------------------------------------------------------------------->"
        ;;
        scp)
        echo "当前目录: "
        ls
        read -ep "请输入要传送的文件或目录的名字(多个文件或目录以空格分隔):" to_scp
        #可以用ls查看非当前目录要传送的文件或目录,可用tab键查看内容和补全功能。
        echo "------------------------------------------------------------------------->"
        echo -e "\033[31m传输的内容 : "${to_scp#*/}" \033[0m"
        scp_command "${to_scp#*/}"
        echo "------------------------------------------------------------------------->"
        ;;
        *)
        echo -e "\033[35m输入的不是规定的参数,取消执行命令!
(请输入数字1或2 操作指令bash/scp.)\033[0m"

        echo ""
        echo "=====================================================>"
        esac
done

  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐