Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?_创想鸟

解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?

大家好,又见面了,我是你们的朋友全栈君。

如何编写一个名为xsync的shell脚本(也称为xsync命令),以实现多个电脑或虚拟机之间的文件同步?让我们逐步了解其实现方法和相关问题。

一、xsync命令与rsync命令之间的关系介绍:(1)xsync命令来源于一个xsync脚本,这个脚本不是Linux系统自带的,而是由程序员编写的。(2)xsync脚本的底层实际上是调用Linux系统自带的rsync命令,来实现多个电脑之间的快速文件同步。(3)rsync命令可以直接使用:其本质是通过“用户+电脑IP地址”的形式,向其他服务器发送数据,并在其他服务器上创建相同目录和文件。

二、xsync命令的作用:(1)使用xsync命令同步一个文件时,该文件将被同步到其他服务器的相同路径下(如果路径不存在,将自动创建)。(2)使用xsync命令同步一个目录时,该目录下的所有文件和子目录将被同步到其他服务器的相同路径下(如果路径不存在,将自动创建)。(3)多次同步同一个文件或目录时,第一次会进行完整同步,之后的同步仅会更新发生更改的部分,未更改的部分不会重复同步。

三、问题描述:(1)Linux系统中不存在xsync命令,但存在类似的sync命令(即,可以使用rsync命令,但不能直接使用xsync命令)。(2)需要快速实现将一个文件同步到其他电脑上,而不是一个个复制(即,服务器集群中的快速同步命令)。

四、问题原因:(1)Linux系统中缺少xsync脚本。(2)xsync脚本需要放到Linux系统的“/bin”目录下,这样才能在任何目录下调用xsync命令。

五、解决方法:(1)开启Linux系统的SSH服务:

CentOS8开启SSH服务步骤:1、首先安装SSH服务(CentOS8默认自带):yum install openssh-server2、启动SSH服务:systemctl start sshd3、查看SSH服务状态:systemctl status sshd4、查看端口(22端口):netstat -antp | grep sshd5、加入开机启动:chkconfig sshd on

(2)创建一个xsync脚本文件:

vim xsync

(3)将下面的xsync脚本模板拷贝到xsync文件中:

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

2 获取文件名称

p1=$1fname=basename $p1echo fname=$fname

3 获取上级目录到绝对路径

pdir=cd -P $(dirname $p1); pwdecho pdir=$pdir

4 获取当前用户名称

user=whoami

5 循环

for((host=129; host<=132; host++)); doecho ------------------- hadoop$host -------------------rsync -rvl $pdir/$fname $user@hadoop$host:$pdirdone

注意:第五步中的循环rsync命令IP地址部分需要根据实际情况进行修改;rsync命令的使用方法请参考上文。

(4)给xsync脚本添加可执行权限:

chmod 755 xsync

(5)将编写好的xsync脚本文件拷贝到“/bin”目录下:

mv xsync /bin

(6)在任意位置调用xsync命令,向多台服务器同步文件:

xsync命令用法:(1)xsync 路径/文件名(2)xsync 路径/目录注意:路径可以是绝对路径,也可以是相对路径

(7)实际测试:如下图所示1.在一台电脑上执行xsync命令:

解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?

2.在另外两台电脑上的相同路径下,将会出现相同的文件:

解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?

六、综上所述:上述方法有一个缺陷,即需要输入每台服务器的密码。如果不想输入各台服务器的密码,需要配置SSH私钥公钥,可以参考以下链接:https://www.php.cn/link/54492a88083312aefd7646573eecfc9e

发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/4a86dd8f0c2c59144c9ead3d39b393f8原文链接:https://www.php.cn/link/c8377ad2a50fb65de28b11cfc628d75c

以上就是解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/29470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
阅站漫画电脑版设置方法
上一篇 2025年11月3日 12:31:54
sublime如何比较两个文件的差异 _sublime文件对比技巧
下一篇 2025年11月3日 12:31:55

相关推荐

发表回复

登录后才能评论
关注微信