轻松实现远程批量拷贝文件脚本(女学生作品)
下面是来自老男孩培训初级第14期第六节课的批量分发管理服务器课程的女学生的作品(详细注释)
在大多数男同学还在迷糊的时候,该女同学已经完整的读懂并注释了全部的脚本,老男孩非常感慨,大家都有此努力的学习态度何愁运维不牛呢?
脚本内容及注释如下:
[binzai@ssh-server scripts]$ cat fenfa_host.sh #→实现把脚本当前目录下的文件拷贝到所有服务器的任意目录 #!/bin/sh . /etc/init.d/functions file="$1" #→传参文件 remote_dir="$2" #→远程服务器目录 if [ $# -ne 2 ];then #→如果传的参数不等于2个,那么就打印如下报错信息。 #→ $#:获取当前shell命令行中的参数的总个数 #→ -ne:不等于 echo "usage:$0 argv1 argv2" #→$0:首个参数(fenfa_host.sh) echo "must have two argvs." exit fi for ip in $(cat /home/binzai/scripts/all_iplist.txt) #→$():在脚本里引用全局变量 do scp -P22 -r -p $file binzai@$ip:~ >/dev/null 2>&1 &&\ #→将hosts文件传到binzai家目录下,如果没有传递过去,将丢弃到/dev/null ssh -p 22 -t binzai@$ip sudo rsync -avz -P $file $remote_dir >/dev/null 2>&1 #→通过ssh通道执行sudo命令将hosts文件拷贝到/etc目录下 if [ $? -eq 0 ];then #→如果上次执行结果返回值等于0,则执行OK。如果不等于0,则执行NO #→$?:上次执行结果的返回值 #→-eq:等于 action "$ip is successful." /bin/true else action "$ip is failure." /bin/false fi done
补充shell变量知识:
$0 获取当前执行的shell脚本的文件名,包括路径
$n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9用大括号括起来 {10}
$* 获取当前shell的所有参数,将所有的命令行参数视为单个字符串,相当于“$1$2$3”…….注意与$
#的区别
$
# 获取当前shell命令行中参数的总个数
$@ 这个程序的所有参数”$1” “$2” “$3” “……” ,这是将参数传递给其他程序的最佳方式,因为他会保留所有内嵌在每个参数里的任何空白。
$? 是上次执行结果的返回值
0是正确,非0是错误
$()是引用全局命令(在脚本里面引用命令)
执行效果:
老男孩老师补充:
1)以上为基础的脚本,没什么难度,主要是感慨下学生的努力态度。
2)本脚本需要借助SSH KEY或者补充expect实现。
同期其他同学作品
http://oldboy.blog.51cto.com/2561410/1206238
批量分发管理三种解决方案案例视频分享(老男孩主讲)
http://oldboy.blog.51cto.com/2561410/824931
轻松实现远程批量拷贝文件脚本(女学生作品)相关推荐
- linux批量拷贝文件脚本,把文件复制N份的2个Shell脚本代码
测试时需要大量文件,所以写了脚本进行拷贝.有规律的文件名利于引用. #!/bin/sh # file name : batchcp.sh # author: zhouhh # Email: abloz ...
- linux自动批量拷贝文件
如果有一批机器同在一个局域网,这批机器所在地址段为192.168.100.1-192.168.100.256,用户名均为test,密码123123,如何批量将某个文件拷贝到这批机器中. 首先请确保这批 ...
- 文件拷贝命令至服务器,远程服务器拷贝文件命令
远程服务器拷贝文件命令 内容精选 换一换 在IntelliJ上选择"项目",找到".idea"文件夹,单击右键选择"新建>文件", 输 ...
- python copy文件_python批量拷贝文件
普通批量拷贝文件 import os import shutil import logging from logging import handlers from colorama import Fo ...
- Linux使用shell脚本批量拷贝文件
在日常工作中我们经常会碰到在linux下导出文件的工作,如果挨个拷贝就很麻烦也很不方便. 方法一:for循环的拷贝 这种方法适合轻量拷贝,我们把需要拷贝的文件名单独列出来,放在name.txt文件中, ...
- 关于Syncovery软件在windows下远程访问服务器批量拷贝文件的使用
最近在进行更新远程服务器上的文件的操作,由于节点比较多,而且是在windows系统上,所以只能采用较为繁锁的不断远程登录每个节点,再在每台机器上不停使用复制和粘贴,效率低下的同时也特别容易出错,试想如 ...
- 指定路径列表批量拷贝文件+Windows批处理命令大全
一.指定路径列表批量拷贝Windows文件 cat.bat @echo off set target = '' mkdir samples setloacal enabledelayedexpanss ...
- 服务器怎么拷贝文件夹下,Syncovery(数据备份工具)如何在windows下远程访问服务器批量拷贝文件?Syncovery图文教...
Syncovery是一款数据备份工具,能够在pc.mac.服务器.在线存储空间之间同步,并自带FTP,是一款灵活的同步备份工具,并同步Mac电脑,服务器,笔记本电脑,以及在线存储空间,一起来看看具体的 ...
- 从远程服务器拷贝文件命令,远程拷贝文件命令Scp的使用
scp通过网络在两台主机之间拷贝文件,数据在传输过程中是经过加密的,其底层使用ssh来进行数据传输,并且它和ssh有相同的验证机制和同样的安全级别.当使用scp拷贝一个文件到另一台主机上的时候,如果目 ...
最新文章
- 基础设施即代码:Terraform和AWS无服务器
- python读取nc文件并转换成csv_python3使用类型转换读取csv文件
- 域名怎么绑定ip_服务器怎么绑定域名?
- wxpython pyqt_python gui 中三大框架tkinter ,wxpython, pyqt如何选择
- linux限制ip带宽,apache如何限制并发数 IP 带宽?
- 计算机六级好考吗,计算机六级考什么?
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_15-webpack研究-webpack-dev-server-程序调试...
- 图形数据库 Neo4j(2) ----Java
- 用计算机制作标准曲线的方法,如何制作标准曲线
- Vista 陪我过周末
- Rclone挂载SharePoint
- 3.3 伴随矩阵法求逆矩阵
- 0x0000001a蓝屏代码是什么意思 0x0000001a蓝屏代码怎么解决
- 2D横版游戏角色素材可商用
- 奇安信“科技冬奥”项目成果亮相国家科技计划成果路演行动
- vue引用iconfont图标
- 签千亿订单,中芯国际可量产3nm芯片?
- QT当中的【QSetting和.ini配置文件】以及【创建Resources.qrc】
- 【Latex】编辑公式效率太低?来看一些MathType的重要技巧
- 线性稳压器LDO的效率
热门文章
- scanner怎样回到文件开头_Radare2逆向分析dex/so/二进制等文件的使用方法
- 计算机启动太慢可以设置什么来加速启动速度,电脑开机速度慢怎么办 如何加速电脑开机速度慢【详细介绍】...
- python0.1+0.2不等于0.3_为什么0.1 + 0.2不等于0.3?
- Dockerfile实战之部署python网站
- java safevarargs_@SafeVarargs注解的使用
- java软件网络工程师面试题_170道Java工程师面试题,你敢挑战吗?
- aspx后台调用前台jquery_Jquery Ajax调用aspx页面方法
- 何时使用构造函数,构造函数使用new关键字
- vue-cli构建的vue项目中引入stylus文件
- 【算法总结】二分搜索