由于远程复制scp只能一个一个复制,当节点很多时相当耗时,所以编写远程复制脚本文件实现文件或文件夹在所有节点的远程复制。
如上图可知自己编写的脚本放在 /usr/local/bin或者 /usr/local/sbin 中就可以不用配置环境变量了
xcp.sh的代码如下:
#!/bin/bash
if [ $# -lt 1 ] ;then
echo no args
exit;
fi
#get first argument
arg1=$1; #qu chu di yi ge can shu
cuser=`whoami` #qu chu yong hu shi shei
fname=`basename $arg1` #qu chu weng jian ming
dir=`dirname $arg1` #
if [ $dir="." ] ;then
dir=`pwd`
fi
for (( i=1;i<=4;i=i+1 )) ;
do
echo ---------- coping $arg1 to ubuntu$i ---------- ;
if [ -d $arg1 ] ;then
scp -r $arg1 $cuser@ubuntu$i:$dir
else
scp $arg1 $cuser@ubuntu$i:$dir
fi
done
xrm.sh的代码如下:
#!/bin/bash
if [ $# -lt 1 ] ;then
echo no args
exit;
fi
#get first argument
arg1=$1; #qu chu di yi ge can shu
cuser=`whoami` #qu chu yong hu shi shei
fname=`basename $arg1` #qu chu weng jian ming
dir=`dirname $arg1` #
if [ $dir="." ] ;then
dir=`pwd`
fi
echo ------ rming $arg1 from localhost ----
rm -rf $arg1
echo
for (( i=1;i<=4;i=i+1 )) ;
do
echo ---------- rming $arg1 from ubuntu$i ---------- ;
ssh ubuntu$i rm -rf $dir/$fname
echo
done
xls.sh的代码如下:
#!/bin/bash
if [ $# -lt 1 ] ;then
echo no args
exit;
fi
#get first argument
arg1=$1; #qu chu di yi ge can shu
cuser=`whoami` #qu chu yong hu shi shei
fname=`basename $arg1` #qu chu weng jian ming
dir=`dirname $arg1` #
if [ $dir="." ] ;then
dir=`pwd`
fi
for (( i=1;i<=4;i=i+1 )) ;
do
echo ---------- ls $arg1 from ubuntu$i ---------- ;
ssh ubuntu$i ls $dir/$fname | xargs
echo
done
xcall.sh 的代码如下
#!/bin/bash
if [ $# -lt 1 ] ;then
echo no args
exit;
fi
echo -----xcall $arg1 from localhost -----
$@
echo
#get first argument
for (( i=1;i<=4;i=i+1 ));
do
echo -----xcall $arg1 from ubuntu$i ----;
ssh ubuntu$i $@
echo
done