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