需求:写一个脚本,当输入某个文件的名称时,其他节点对应的文件也产生更新
文件名 : xsync.sh
#!/bin/bash
# 1. 获取输入的参数的个数,如果没有参数,直接退出
put_count=$#
if(($put_count==0));then
echo "没有输入需要同步的文件名称!请在运行是输入 ! 例如 ./xsync test.txt";
exit;
fi
# 2. 获取文件名称
p1=$1
file_name=`basename $p1`
echo file_name=$file_name
# 3. 获取上级目录的绝对路径
put_dir=`cd -P $(dirname $p1);pwd`
echo put_dir=$put_dir
# 4. 获取当前用户名称
user=`whoami`
# 5. 循环同步到各个节点
for i in $(seq 1 2)
do
echo -------------------slave0$i---------------------
rsync -rvl $put_dir/$file_name $user@slave0$i:$put_dir
done
chmod 777 xsync.sh
./xsync.sh xsync.sh
在master运行的结果如图 :
在slave01查看结果如下:(原本没有 xsync.sh 这个文件)