Linux操作-数据分发脚本

脚本主体内容

#!/bin/env bash

### 打印日志
function printInfo(){
	echo "[$(date +'%F %T')] [INFO]: $1"
}

### 打印失败日志
function printError(){
	echo "[$(date +'%F %T')] [ERROR]: $1"
	exit 1
}

# 获取输入参数个数,如果没有参数,直接退出
pocunt=$#
if [[ ${pocunt} -lt 1 ]]; then
	printError "not enough arguement!"
fi

# 可以将服务器统一用户名提取出来
server_name=root

# 需要遍历的所有服务器ip或映射名称
hosts="
node2
node3
"

while read host; do
	# 判断传入内容是否为空,为空返回循环判断
	if [[ -z ${host} ]]; then
		continue
	fi
	# 开始遍历传入的目录
	for file in $@; do
		# 判断文件是否存在
		if [[ -e ${file} ]]; then
			# 获取父目录
			pdir=$(cd -P $(dirname ${file}); pwd)
			printInfo "pdir=${pdir}"
			# 获取当前文件的名称
			fname=$(basename ${file})
			printInfo "fname=${fname}"
			# 通过ssh执行命令: 在${host}主机上递归创建文件夹(如果存在该文件夹)
			ssh ${host} "mkdir -p ${pdir}"
			# 远程同步文件至$host主机的目录下
			scp -r ${pdir}/${fname} ${server_name}@${host}:${pdir}
		else
			printError "${file} does not exists!"
		fi
	done
done <<< "${hosts}"

建议脚本存放位置: /export/onekey
脚本名称为: xsync
配置环境变量

echo "export ONEKEY=/export/oneKey" >> /etc/profile
export "export PATH=$PATH:$ONEKEY" >> /etc/profile
# 刷新环境变量
source /etc/profile
# 使用方法
xsync 要分发的数据目录或文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OnePandas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值