shell脚本批量自动分发文件
1、安装expect
1 | yum -y install expect |
2、创建iplist.txt文件(要分发的IP地址)
1 2 3 4 | vim iplist.txt 192.168.100.22 192.168.100.23 |
3、创建pwd.txt(里面包含密码)
1 2 3 4 | vim pwd .txt 123456 123123 |
4、创建脚本fenfa_file.sh
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 | vim fenfa_file.sh #!/bin/bash echo "拷贝情况如下:" > /root/test .log n=` cat /root/iplist .txt | wc -l` #分发的ip数量 for (( i=1; i<=$n; i++ )) do passwd =` cat /root/pwd .txt| head -$i| tail -1` #第i个IP地址的密码 ip=` cat /root/iplist .txt| head -$i| tail -1` #第i个IP地址 echo $ip /usr/bin/expect <<EOF spawn scp /root/1 .txt $ip: /root/ expect "yes/no" {send "yes\n;exp_untinue" } expect "password" {send "$passwd\n" } expect eof EOF if [ $? - eq 0 ]; then echo "$ip:成功" >> /root/test .log else echo "$ip:失败" >> /root/test .log fi done |
5、执行脚本
1 2 3 4 5 6 7 8 9 10 11 | [root@server01 ~] # sh fenfa_file.sh 192.168.100.22 spawn scp /root/1 .txt 192.168.100.22: /root/ root@192.168.100.22's password: 1.txt 100% 0 0.0KB /s 00:00 192.168.100.23 spawn scp /root/1 .txt 192.168.100.23: /root/ root@192.168.100.23's password: 1.txt 100% 0 0.0KB /s 00:00 #第一次分发没有等待是因为在执行时需要输入yes/no来确认是否连接,第二次分发会在输入密码那里等待几秒是因为第二次是直接输入密码,不需要在输入yes/no |
6、查看test.log分发日志
1 2 3 4 | [root@server01 ~] # cat test.log 拷贝情况如下: 192.168.100.22:成功 192.168.100.23:成功 |
7、如果密码是相同的 可以把密码指定到变量里面进行执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/bash echo "拷贝情况如下:" > /root/test .log n=` cat /root/iplist .txt | wc -l` for (( i=1; i<=$n; i++ )) do #passwd=`cat /root/pwd.txt|head -$i|tail -1` passwd = "123456" ip=` cat /root/iplist .txt| head -$i| tail -1` echo $ip /usr/bin/expect <<EOF spawn scp /root/1 .txt $ip: /root/ expect "yes/no" {send "yes\n;exp_untinue" } expect "password" {send "$passwd\n" } expect eof EOF if [ $? - eq 0 ]; then echo "$ip:成功" >> /root/test .log else echo "$ip:失败" >> /root/test .log fi done |
******************************我也想难过的时候到海边走走,可是我的城市没有海。******************************
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY