1 Star 0 Fork 2

午十二/iTennis-Lopts

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
exescp_list.sh 1.38 KB
一键复制 编辑 原始数据 按行查看 历史
root 提交于 2019-02-01 14:18 . 添加多线程处理机制
#!/bin/bash
start=`date +'%F %H:%M:%S'`
source_functions()
{
. conf/itennis.conf
. scripts/log_print
. scripts/exec_remote
}
source_functions
tmp_fifofile="/tmp/$.fifo"
CONF_LIST=/tmp/conf_list.$$
RESULT_ALL=/tmp/res_all.$$
SOURCE_FILE=$2
DEST_FILE=$3
mkfifo $tmp_fifofile # 新建一个fifo类型的文件
exec 6<>$tmp_fifofile # 将fd6指向fifo类型
rm $tmp_fifofile
grep -v "^#" $1 > ${CONF_LIST}
THREAD=`cat ${CONF_LIST} | wc -l`
for ((i=1;i<$THREAD+1;i++));do
echo
done >&6
for ((i=1;i<$THREAD+1;i++))
do
{
read -u6
{
arr=(`sed -n ${i}p $CONF_LIST`)
echo "[`date`] cp_file_to_r $REMOTE_PORT $REMOTE_TIMEOUT ${arr[0]} ${arr[2]} ${arr[3]} ${SOURCE_FILE} ${DEST_FILE}" | tr -d '\r' >> /var/log/iTennis/${arr[0]}.log
cp_file_to_r $REMOTE_PORT $REMOTE_TIMEOUT ${arr[0]} ${arr[2]} ${arr[3]} ${SOURCE_FILE} ${DEST_FILE}
if [[ $? = 0 ]];then
log WARN "The current ${i} , ${arr[0]} is finshed" >> $RESULT_ALL
else
log ERROR "The current ${i} , ${arr[0]} is execute failed , pleace chect it" >> $RESULT_ALL
fi
} || {
log ERROR "thread error"
}
echo >&6
} &
done
wait
exec 6>&-
end=`date +'%F %H:%M:%S'`
log INFO "--------------------------------------------------------------"
sort -n -k 6 $RESULT_ALL
log INFO "Begin time:$start , End time: $end"
log INFO "--------------------------------------------------------------"
rm /tmp/*.$$
exit 0
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/woaiguoyiran/iTennis-Lopts.git
git@gitee.com:woaiguoyiran/iTennis-Lopts.git
woaiguoyiran
iTennis-Lopts
iTennis-Lopts
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385