集群分发脚本xysnc

news2024/9/23 1:34:42

一、scp(secure copy) 安全拷贝

1.定义

`scp`(Secure Copy)是一个用于在不同计算机之间安全地复制文件和目录的命令行工具。它使用 SSH 协议进行连接和文件传输,提供了加密和身份验证机制,确保数据传输的安全性。

2.基本语法

scp [options] source destination

其中,`source` 是要复制的源文件或目录的路径,`destination` 是目标文件或目录的路径。

`scp` 命令的常用选项包括:

- `-r`:递归复制目录及其内容。
- `-p`:保留源文件的权限。
- `-v`:显示详细的输出,可以查看复制过程中的进度和详细信息。
- `-i`:指定用于身份验证的私钥文件。
- `-P`:指定远程 SSH 服务器的端口号。

3.实例

① 将本地文件复制到远程服务器:

scp /path/to/local/file user@remote-server:/path/to/destination

上述命令将本地的 `/path/to/local/file` 文件复制到远程服务器的 `/path/to/destination` 目录中。

② 将远程文件复制到本地:

scp user@remote-server:/path/to/remote/file /path/to/destination

上述命令将远程服务器上的 `/path/to/remote/file` 文件复制到本地的 `/path/to/destination` 目录中。

③ 递归复制目录及其内容:

scp -r /path/to/local/directory user@remote-server:/path/to/destination

上述命令将本地的 `/path/to/local/directory` 目录及其内容递归地复制到远程服务器的 `/path/to/destination` 目录中。

④ 从远程服务器复制文件到本地,并指定端口号:

scp -P 2222 user@remote-server:/path/to/remote/file /path/to/destination

上述命令将远程服务器上的 `/path/to/remote/file` 文件复制到本地的 `/path/to/destination` 目录中,并指定远程服务器的端口号为 2222。

注:`scp` 命令需要在本地计算机和远程服务器之间建立 SSH 连接,并且需要提供适当的身份验证凭据(如用户名和密码或私钥文件)。

二、rsync远程同步工具

1.定义

`rsync` 是一个功能强大的文件复制和同步工具,可以在本地和远程之间进行文件同步。与 `scp` 不同,`rsync` 可以根据文件的差异进行增量复制,只传输发生变化的部分,从而提高效率和节省带宽。

2.基本语法

rsync [options] source destination

其中,`source` 是要复制的源文件或目录的路径,`destination` 是目标文件或目录的路径。`source` 和 `destination` 可以是本地路径,也可以是远程路径(使用 `rsync` 的远程协议)。

`rsync` 命令的常用选项包括:

- `-a`:以归档模式进行复制,保留文件的所有属性(权限、所有者等)。
- `-r`:递归复制目录及其内容。
- `-v`:显示详细的输出,可以查看复制过程中的进度和详细信息。
- `-z`:在传输过程中启用压缩,减少数据传输量。
- `-P`:显示进度信息,同时保留部分复制的文件。
- `-e`:指定远程 shell 的命令。
- `--delete`:在目标上删除源中不存在的文件。

3.实例

① 本地文件复制:

rsync /path/to/local/file /path/to/destination

上述命令将本地的 `/path/to/local/file` 文件复制到本地的 `/path/to/destination` 目录中。

② 本地目录复制:

rsync -a /path/to/local/directory /path/to/destination

上述命令将本地的 `/path/to/local/directory` 目录及其内容复制到本地的 `/path/to/destination` 目录中。

③ 从远程服务器复制文件到本地:

rsync -avz user@remote-server:/path/to/remote/file /path/to/destination

上述命令将远程服务器上的 `/path/to/remote/file` 文件复制到本地的 `/path/to/destination` 目录中,并使用压缩进行传输。

④ 从本地复制文件到远程服务器:

rsync -avz /path/to/local/file user@remote-server:/path/to/destination

上述命令将本地的 `/path/to/local/file` 文件复制到远程服务器的 `/path/to/destination` 目录中,并使用压缩进行传输。

⑤ 远程同步两个目录:

rsync -avz user@remote-server:/path/to/source /path/to/destination

上述命令将远程服务器上的 `/path/to/source` 目录及其内容与本地的 `/path/to/destination` 目录进行同步,并使用压缩进行传输。

注:`rsync` 命令需要在本地计算机和远程服务器之间建立连接,并且需要提供适当的身份验证凭据(如用户名和密码或私钥文件)。另外,确保在使用 `rsync` 命令时,您具有足够的权限来访问源文件和目标位置。

三、xsync集群分发脚本

1.需求

循环复制文件到所有节点的相同目录下

2.需求分析

(a)rsync命令原始拷贝:

rsync  -rvl     /opt/module      root@hadoop01:/opt/

(b)期望脚本:

        xsync要同步的文件名称

c)说明:在/home/hadoop/bin这个目录下存放的脚本,hadoop用户可以在系统任何地方直接执行。

3.脚本实现

在/home/Hadoop这个目录下创建bin目录,并在bin目录下xsync创建文件。

要找到您当前登录用户的目录,可以使用以下命令:

echo $HOME

该命令会打印出您当前登录用户的主目录路径。在Linux系统中,每个用户都有一个主目录,通常位于 `/home` 目录下,以用户名命名。

另外,您还可以使用以下命令来查看当前所在的目录:

pwd

该命令会显示当前工作目录的路径,即您当前所在的目录。

命令如下:

[hadoop@Hadoop01 ~]$ mkdir bin
[hadoop@Hadoop01 ~]$ cd bin
[hadoop@Hadoop01 bin]$ touch xsync

在文件中编写如下代码:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=02; host<04; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -av $pdir/$fname $user@hadoop$host:$pdir
done

注:如果你的主机名和我一样是01,02,03,把代码文件路径中的adoop改成Hadoop0(由于脚本中的循环计数变量 host 在输出时被解释为整数而不是字符串,所以会被解析为hadoo2和hadoop3)。

 接着修改脚本 xsync 具有执行权限:

chmod 777 xsync

调用脚本形式:

xsync 文件夹名称

如图所示,可正确运行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1080076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 项目增加 res配置

main.res.srcDirs "src/main/res_test" build->android->sourceSets

从裸机启动开始运行一个C++程序(七)

前序文章请看&#xff1a; 从裸机启动开始运行一个C程序&#xff08;六&#xff09; 从裸机启动开始运行一个C程序&#xff08;五&#xff09; 从裸机启动开始运行一个C程序&#xff08;四&#xff09; 从裸机启动开始运行一个C程序&#xff08;三&#xff09; 从裸机启动开始运…

Mall脚手架总结(四) —— SpringBoot整合RabbitMQ实现超时订单处理

前言 在电商项目中&#xff0c;订单因为某种特殊情况被取消或者超时未支付都是比较常规的用户行为&#xff0c;而实现该功能我们就要借助消息中间件来为我们维护这么一个消息队列。在mall脚手架中选择了RabbitMQ消息中间件&#xff0c;接下来荔枝就会根据功能需求来梳理一下超时…

SRE实战:如何低成本推进风险治理?稳定性与架构优化的3个策略

一分钟精华速览 SRE 团队每天面临着不可控的各类风险和重复发生的琐事&#xff0c;故障时疲于奔命忙于救火。作为技术管理者&#xff0c;你一直担心这些琐事会像滚雪球一样&#xff0c;越来越多地、无止尽地消耗你的团队&#xff0c;进而思考如何系统性地枚举、掌控这些风险&a…

ctf中ping命令执行绕过

相关wp参考&#xff1a;CTF中的命令执行绕过方式 - 知乎 CTFping命令绕过及符号用法_ctf ping-CSDN博客 在用linux命令时候,我们可以 一行执行多条命令 或者 有条件的执行下一条命令 linux命令中一些符号的用法 1. “;”分号用法 方式&#xff1a;command1 ; command…

【ccf-csp题解】第7次csp认证-第三题-路径解析超详细题解-字符串模拟

本题思路来源于acwing ccfcsp认证课 题目描述 思路分析 首先&#xff0c;为了处理路径中的反斜杠符号&#xff0c;我们可以实现一个get函数&#xff0c;把一个路径中每一对反斜杠之间的内容存到vector<string>中&#xff0c;如果有连续的多个反斜杠则只看成一个 举个例…

“.NET视频总结:认识框架的结构和组件,掌握开发工具的奥妙“一

目录 第一单元&#xff1a;二十一世纪程序执行 背景: 总结&#xff1a; 第二单元:对象导向与类别设计 背景: 总结&#xff1a; 第三单元&#xff1a;使用类别与基底类别库 总结: 第四单元:Windows开发程序 背景: 总结: 第五单元:防护式程序设计 背景: 总结: 第六…

数据库中的DECODE函数,SIGN函数

oracle中的if(),oracle中if/else的三种实现方式详解_电竞GO的博客-CSDN博客 DECODE(CONCAT(b.AZZ231,%),%,,CONCAT(b.AZZ231,%)) czwcl,

Acrel-6000电气火灾监控系统应用

安科瑞 崔丽洁 摘要 建筑电气火灾在建筑物火灾中占较大的比例&#xff0c;起火原因也很多&#xff0c;包括短路、过热、漏电、雷击和电气等故障&#xff0c;火灾危害也较大。因此&#xff0c;各种原因引起的火灾都应得到有效控制。目前&#xff0c;短路、过热、雷击等保护措施…

【Java网络编程】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 Java是一种广泛应用于网络编程的编程语言。通过Java的网络编程能力&#xff0c;我们可以构建强大的网络应用程序。本文将介绍Java网络编程的基础知识、常用API和一些实…

nginx目录穿越

测试nginx版本为nginx/1.23.3 location /file {alias /home/;} 在/usr跟目录下新建a.txt测试文件 通过访问 http://{ip}:{端口}/file../test.txt 实现目录穿越 防护:location与alias的值都加上/或不加/

MongoDB实践

MongoDB学习 MongoDB简介 MongoDB 是一种流行的文档型 NoSQL 数据库&#xff0c;它具有以下特点和应用场景&#xff1a; 文档型数据库&#xff1a;MongoDB 使用 BSON&#xff08;Binary JSON&#xff09;格式的文档来存储数据。每个文档可以具有不同的字段&#xff0c;这使得…

山西电力市场日前价格预测【2023-10-12】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-12&#xff09;山西电力市场全天平均日前电价为506.23元/MWh。其中&#xff0c;最高日前电价为841.91元/MWh&#xff0c;预计出现在18: 30。最低日前电价为351.76元/MWh&#xff0c;预计…

关键词搜索速卖通商品列表接口,速卖通商品列表数据接口

在网页抓取方面&#xff0c;可以使用 Python、Java 等编程语言编写程序&#xff0c;通过模拟 HTTP 请求&#xff0c;获取速卖通网站上的商品页面。在数据提取方面&#xff0c;可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是&#xff0c;速卖通…

PowerDesinger导入保险业excel数据模型(代码亲测可用)

一、Excel表 按如下结构填充建表所需的数据(附 Excel 表模板): 二、PowerDesigner 新建模型 点击:File——>New Model——>Model types——>Physical Data Mode 三、PowerDesigner 导入 Excel 脚本 按住Ctrl+Shift+X进入脚本运行界面,导入以下脚本并运行: 注…

牛客 明明的随机数

HJ3 明明的随机数 原题思路代码运行截图收获 原题 HJ3 明明的随机数 思路 如果是C的话直接用set结构体就可以自动排序GO&#xff1a;用一个501的数组存储是否出现&#xff0c;最后从头开始输出出现过的数字 代码 #include <iostream> #include <set> using na…

css怎么实现文字描边

有时&#xff0c;我们会遇到UI稿有文字描边的效果&#xff0c;比如下图的效果。 一、给需要描边的文字加一个id选择器 例如&#xff1a; 二、css写法&#xff1a; number,{//这个是实现文字描边的关键&#xff0c;也就是‘空心文字’&#xff0c;这个是定义文字字符的描边的宽…

向量的运算

向量加法 实质是坐标加法。如下图&#xff1a; 向量减法 实质是坐标减法。如下图&#xff1a; 向量乘法 分为点乘和叉乘&#xff0c;点乘是计算平行四边形的面积&#xff0c;叉乘是计算投影&#xff0c;点乘为标量&#xff0c;叉乘为向量。

Git 使用技巧:5个提高效率的命令,不再只会pull和push

前言 使用 Git 作为代码版本管理&#xff0c;早已是现在开发工程师必备的技能。可大多数工程师还是只会最基本的保存、拉取、推送&#xff0c;遇到一些commit管理的问题就束手无策&#xff0c;或者用一些不优雅的方式解决。 本文分享我在开发工作中实践过的实用命令。这些都能…

【1】MongoDB的安装以及连接

今天是2023年10月11日&#xff0c;MongoDB最新版本是7.0.2 最近闲着没事学习一下MongoDB这个NoSQL数据库&#xff0c;有时间就顺手记录一下我学习的笔记吧~ 学习笔记来自黑马程序员《MongoDB基础入门到高级进阶&#xff0c;一套搞定mongodb》 配套资料&#xff1a;点此资料链接…