大家好,又见面了,我是你们的朋友全栈君。
如何编写一个名为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 exitfi2 获取文件名称
p1=$1fname=
basename $p1echo fname=$fname3 获取上级目录到绝对路径
pdir=
cd -P $(dirname $p1); pwdecho pdir=$pdir4 获取当前用户名称
user=
whoami5 循环
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命令:


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



六、综上所述:上述方法有一个缺陷,即需要输入每台服务器的密码。如果不想输入各台服务器的密码,需要配置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
微信扫一扫
支付宝扫一扫