Linux之——自定义脚本实现在集群上分发文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/l1028386804/article/details/101604801

背景:在维护大型服务器集群的时候,如果登录每台服务器进行文件创建操作,那就太麻烦了,此时,我们可以写一个脚本,在集群中的某台服务器上创建文件,之后利用脚本将文件复制到集群中的其他服务器上。
作用:循环复制文件到所有节点的相同目录下。
执行脚本文件的前提:集群中的主机配置了主机名与IP地址的映射关系,各台主机能够使用主机名通信,同时配置了SSH免密码登录。
核心命令使用的是rsync
xsync脚本文件的内容如下:

#!/bin/bash
pcount=$#;
if (( pcount<0 )) ; then
	echo "no args";
	exit;
fi
#获取第一个参数
p1=$1;
fname=`basename $p1`
#获取文件的上级目录
pdir=`cd -P $(dirname $p1) ; pwd`
#获取当前用户名
cuser=`whoami`
#循环处理
for (( host=100 ; host<=105 ; host=host+1 )) ; do
	#echo $pdir/$fname $cuser@binghe$host:$pdir
	#打印当前复制文件的目标主机名
	echo ---------------binghe$host-------------------
	rsync -rvl $pdir/$fname $cuser@binghe$host:$pdir
done

接下来,为xync脚本文件赋予执行权限,如下:

chmod a+x ./xsync

使用示例:
注意:这里我只是打印了循环中的信息,如果在脚本的循环中执行的是rsync -rvl $pdir/$fname $cuser@binghe$host:$pdir命令,则可以将当前服务器上的文件复制到集群中其他服务器的相同目录下。
在命令行输入如下命令运行xsync脚本。

./xsync /usr/local/src/memcached-1.4.24.tar.gz 

在命令行打印出如下信息:

----------------binghe100---------------
/usr/local/src/memcached-1.4.24.tar.gz root@binghe100:/usr/local/src
----------------binghe101---------------
/usr/local/src/memcached-1.4.24.tar.gz root@binghe101:/usr/local/src
----------------binghe102---------------
/usr/local/src/memcached-1.4.24.tar.gz root@binghe102:/usr/local/src
----------------binghe103---------------
/usr/local/src/memcached-1.4.24.tar.gz root@binghe103:/usr/local/src
----------------binghe104---------------
/usr/local/src/memcached-1.4.24.tar.gz root@binghe104:/usr/local/src
----------------binghe105---------------
/usr/local/src/memcached-1.4.24.tar.gz root@binghe105:/usr/local/src

猜你喜欢

转载自blog.csdn.net/l1028386804/article/details/101604801