设为首页 收藏本站
查看: 1658|回复: 0

shell批量多台服务器数据copy

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-8 08:12:32 | 显示全部楼层 |阅读模式
  • 实验服务器两台:
    192.168.77.189
    192.168.77.190
  • 服务器免密钥登录设置:
    [iyunv@192_168_77_189 ~]# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    95:cf:19:a5:ff:d0:bc:80:f5:de:5a:4c:b5:63:ae:c6 root@192_168_77_189
    The key's randomart image is:
    +--[ RSA 2048]----+
    |              .  |
    |           . o   |
    |          o o.  .|
    |         . oo+.oo|
    |        S  .+.o=+|
    |              ==+|
    |            .  +=|
    |             E.o |
    |            ...  |
    +-----------------+
    [iyunv@192_168_77_189 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.77.190
    root@192.168.77.190's password:
    Now try logging into the machine, with "ssh '192.168.77.190'", and check in:
      .ssh/authorized_keys
    to make sure we haven't added extra keys that you weren't expecting.
    [iyunv@192_168_77_189 ~]# ssh 192.168.77.190
    Last login: Sun Jul  5 23:16:20 2015 from 192.168.77.100
    [iyunv@192_168_77_190 ~]# clear
    [iyunv@192_168_77_190 ~]#
    [iyunv@192_168_77_190 ~]#
    [iyunv@192_168_77_190 ~]# exit
  • copy脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
#write by lixi
#time by 2015-7-7
#run by sh auto.shell.sh /root /mnt
if    [ ! -f ip.txt ] ; then
echo -e "\033[32mplease create ip.txt files...\033[0m"
cat << EOF
192.168.149.128
192.168.149.129
EOF
        exit
fi
if
  [ -z "$1" ] ; then
        echo -e "\033[32mUsage $0 command,example{src_file|src_dir Des_dir\033[0m}"
        exit
fi
count=`cat ip.txt | wc -l`
rm -rf ip.txt.swp
i=0
while  ((i<$count))
do
i=`expr $i + 1`
sed "${i}s/^/&${i} /g"  ip.txt >> ip.txt.swp
IP=`awk -v I="$i" '{if(I==$1)print $2}' ip.txt.swp`
scp -r $1 root@${IP}:$2
#rsync -ap --delete $1 root@${IP}:$2
done



以上脚本用rsync也可以,,,rsync同步两个文件一样,,,例如sh auto.shell.sh /opt/ /opt/保持两个服务器之间这个目录文件一样
4.批量远程服务器执行命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
# Auto run server commend
# by lx 2015-7-7
if [ ! -f ip.txt ]; then
        echo -e "\033[32mplease create ip.txt files...\033[0m"
cat << EOF
192.168.149.128
192.168.149.129
EOF
        exit
fi
if
        [ -z "$*" ] ; then
        echo -e "\033[32mUsage: $0 Commend,Example{rm /tmp/text.txt|mkdir /tmp/text2}\033[0m"
        exit
fi
        count=`cat ip.txt | wc -l`
        rm -rf ip.txt.swp
        i=0
while ((i<$count))
do
        i=`expr $i + 1`
        sed "${i}s/^/&${i} /g" ip.txt >>ip.txt.swp
        IP=`awk -v I="$i" '{if(I==$1)print $2}' ip.txt.swp`
ssh -q -l root $IP "$*; echo -e '-----------------------\nthe $IP Exec command:
$* success !';sleep 2"
done



1
2
3
4
5
6
7
root@192_168_77_189 ~]# sh auto_ssh.sh mkdir /tmp/text2
-----------------------
the 192.168.77.190 Exec command:
mkdir /tmp/text2 success !
-----------------------
the 192.168.77.189 Exec command:
mkdir /tmp/text2 success !



5.服务器之前文件同步:
#!/bin/bash
#by lixi 2015.7.7
#run by sh auto_rsync.sh flush
flush()
{
if
        [ ! -f rsync.list ]; then
        echo -e "\033[32mplease create rsync.list file...\033[0m"
cat << EOF
192.168.149.128 src_dir  des_dir
192.168.149.129 src_dir  des_dir
EOF
        exit
fi
        rm -rf rsync.list.swp ; cat rsync.list | grep -v "#" >rsync.list.swp
        COUNT=`cat rsync.list.swp|wc -l`
        NUM=0
while ((${NUM} < $COUNT))
do
        NUM=`expr $NUM + 1`
        Line=`sed -n "${NUM}p" rsync.list.swp`
        SRC=`echo $Line |awk '{print $2}'`
        DES=`echo $Line |awk '{print $3}'`
        IP=`echo $Line |awk '{print $1}'`
        rsync -ap --delete ${SRC}/   root@${IP}:${DES}/
done
}
restart()
{
        rm -rf restart.list.swp ; cat restart.list | grep -v "#" >> restart.list.swp
       COUNT=`cat restart.list.swp|wc -l`
        NUM=0
while ((${NUM} < $COUNT))
do
         NUM=`expr $NUM + 1`
        Line=`sed -n "${NUM}p" restart.list.swp`
        Command=`echo $Line |awk '{print $2}'`
        IP=`echo $Line |awk '{print $1}'`
        ssh -l root $IP "sh $Command; echo -e '----------------\nthe $IP Exec Commadn : sh $Command success !'"
done
}
case $1 in
        flush )
        flush
        ;;
        restart )
        restart
        ;;
        * )
        echo -e "\033[32mUsage: $0 command,example {flush|restart}\033[0m"
        ;;
esac  
                        


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84260-1-1.html 上篇帖子: 编写shell脚本统计某个时间段内本机的流量 下篇帖子: PowerShell操作DNS创建SRV记录 服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表