Linux集群同步文件脚本(xsync)以及同步命令脚本(xcall)的安装以及问题解决办法


注意首先需要主机和从机安装命令rsync(yum install rsync -y)
一、同步文件脚本(xsync)
----作用是将文件或者文件夹同步到集群上的其他从机----
 1 #!/bin/sh
 2 # 获取输入参数个数,如果没有参数,直接退出
 3 pcount=$#
 4 if((pcount==0)); then
 5 echo no args...;
 6 exit;
 7 fi
 8 
 9 # 获取文件名称
10 p1=$1
11 fname=`basename $p1`
12 echo fname=$fname
13 # 获取上级目录到绝对路径
14 pdir=`cd -P $(dirname $p1); pwd`
15 echo pdir=$pdir
16 # 获取当前用户名称
17 user=`whoami`
18 # 循环
19 for((host=1; host<=2; host++)); do
20 echo $pdir/$fname $user@slave0$host:$pdir
21 echo ==================slave0$host==================
22 rsync -rvl $pdir/$fname $user@slave0$host:$pdir
23 done
24 echo "complate !"
!红色字体那行里 slave0是集群子节点名称里不变的部分,变更的部分用循环来获得!
二、执行命令脚本(xcall)
----作用是在所有从机上执行相同的命令----
 1 #!/bin/bash
 2 pcount=$#
 3 if((pcount==0));then
 4 echo no args;
 5 exit;
 6 fi
 7 
 8 echo -------------localhost----------
 9 $@
10 for((host=1; host<=2; host++)); do
11 echo ----------slave0$host---------
12 ssh slave0$host $@
13 done
14 echo "excute successfully !"

一般在  /usr/local/bin目录创建文件,名称可以自己定,创建两个文件然后把以上脚本文件复制进去

最后执行脚本,脚本执行使用chmod命令(chmod 777 文件名全称)

 
三.错误问题解决:
1.使用xcall jps命令时可能会出现下面这种情况:
前提:本机可以正常运行jps命令
这个问题是因为在脚本目录下需要放置jps的软链接,命令如下:
ln -s / opt/module/jdk1.8.0_261/bin/jps jps
这里红色的jps路径要换成自己的,一般在自己jdk安装目录下的bin文件夹里
此时再使用xsync jps命令将软链接分发到子结点上,接着就可以运行xcall jps
2.shell脚本执行报错:/bin/bash^M: bad interpreter: No such file or directory
这里出现问题的原因是:shell脚本格式必须是unix才行,如果脚本是在windows上编写完成传到Linux服务器上的,所以一执行就报错:
windows环境下的文件是dos格式,即每行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识
查看该文件格式:
1.cat -A filename,如果输出结果中行末尾是^M$,则是dos格式,如果行末尾只是$,则是unix格式。
2.vim filename,编辑文件,执行“:set ff”,若执行结果为fileformat=dos则为dos格式,若执行结果为fileformat=unix则为unix格式。
3.od -t x1 filename,以16进制查看文件,若输出结果中存在“0d 0a”则为dos格式,如果只有“0a”则为unix格式。其中“0d”即为回车符“\r”,“0a”即为换行符“\n”。
所以要修改该shell脚本格式,方法如下:
1.sed -i "s/\r//" filename 或sed -i "s/^M//" filename,直接将回车符替换为空字符串。
2.vim filename,编辑文件,执行“: set ff=unix”,将文件设置为unix格式,然后执行“:wq”,保存退出。
3.dos2unix filename或busybox dos2unix filename,如果提示command not found,可以使用前两种方法
 
文档引用:
https://www.cnblogs.com/dd110343/p/14295031.html
https://blog.csdn.net/weixin_39309402/article/details/99732688
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM