linux脚本相互调用,linux中同步更新数据脚本/调用远程执行脚本详解

介绍下在本机结合调用远程机器脚本的方法。

A机器(beta)打包、B机器(同步更新调用了C的脚本)、C机器(数据服务器)

【在A机器】

dw_package.sh

复制代码 代码示例:

user@A:/data/shell/dw> cat dw_package.sh

#!/bin/bash

# DW下载svn最新代码与打jar包并发送到B机器

# 2012年11月

PATH=/data/maven/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

SVN_DIR=/data/dw/dwsync

#read -p "请填写svn版本号:"svnno

read -p "请填写svn版本号: " svnno

#跳转目录

cd $SVN_DIR

svn up -r $svnno

mvn clean package -Denv=prd

ssh B机器IP cp -p /data/repository/maven/prd/dw/ule.dwsync.jar /data/repository/maven/prd/dw/ule.dwsync.jar.date +'%F'

rsync -av $SVN_DIR/target/ule.dwsync.jar B机器IP地址:/data/deploy/repository/maven/prd/dw/

echo -ne "\n\033[32m请登录B机器,执行同步脚本:\033[0m/data/application/dwsync/dw_sync.sh\n\n"

1234567891011121314151617 user@A:/data/shell/dw> cat dw_package.sh

#!/bin/bash

# DW下载svn最新代码与打jar包并发送到B机器

# 2012年11月

PATH=/data/maven/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

SVN_DIR=/data/dw/dwsync

#read -p "请填写svn版本号:"svnno

read -p "请填写svn版本号: " svnno

#跳转目录

cd $SVN_DIR

svn up -r $svnno

mvn clean package -Denv=prd

ssh B机器IP cp -p /data/repository/maven/prd/dw/ule.dwsync.jar /data/repository/maven/prd/dw/ule.dwsync.jar.date +'%F'

rsync -av $SVN_DIR/target/ule.dwsync.jar B机器IP地址:/data/deploy/repository/maven/prd/dw/

echo -ne "\n\033[32m请登录B机器,执行同步脚本:\033[0m/data/application/dwsync/dw_sync.sh\n\n"

【在B机器】

dw_update.sh

复制代码 代码示例:

web@ebay53:~> cat /data/shell/dw/dw_update.sh

#!/bin/bash

# 发布DW所需要jar包到C机器,并执行全量或增量同步

# 2012年11月

PATH=/data/maven/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

SHELL_DIR=/data/deploy/shell/dw

JAR_DIR=/data/postmall/deploy/repository/maven/prd/dw

rsync -av $JAR_DIR/ule.dwsync.jar oracle@C机器IP:/data/application/dwsync/

#rsync -av $JAR_DIR/ule.dwsync.jar oracle@C机器IP:/tmp/

ssh oracle@C机器IP "bash /data/application/dwsync/dw_sync.sh"

123456789101112 web@ebay53:~> cat /data/shell/dw/dw_update.sh

#!/bin/bash

# 发布DW所需要jar包到C机器,并执行全量或增量同步

# 2012年11月

PATH=/data/maven/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

SHELL_DIR=/data/deploy/shell/dw

JAR_DIR=/data/postmall/deploy/repository/maven/prd/dw

rsync -av $JAR_DIR/ule.dwsync.jar oracle@C机器IP:/data/application/dwsync/

#rsync -av $JAR_DIR/ule.dwsync.jar oracle@C机器IP:/tmp/

ssh oracle@C机器IP "bash /data/application/dwsync/dw_sync.sh"

【在C机器】

dw_sync.sh

复制代码 代码示例:

user@test:~$ cat /data/application/dwsync/dw_sync.sh

#!/bin/bash

# 同步并加入定时同步

# 2012年11

SHELL_DIR=/data/application/dwsync

echo -e "\033[32m请在下面输入逻辑表名,多个则以逗号隔开,\033[0m如:Listing,Item"

echo -ne "请输入逻辑表名:"

read tabname

echo -e " "

echo -ne "同步类型:全量同步(allSync.sh)/增量同步(updateSync.sh)\n\033[32m\nallSync.sh\nupdateSync.sh\n\033[0m"

echo -ne "请选择同步类型:"

read Sync

#跳转目录

$SHELL_DIR/$Sync $tabname || (echo -e "\033[31m 请确认同步类型或逻辑表名是否正确 \033[0m";exit)

echo -ne "定时类型:\033[32m增量定时(dwsync_update_list.txt)或全量定时(dwsync_all_list.txt)\033[0m\n无需加定时或已加定时请\033[32mctrl+c\033[0m退出\n\033[32m\ndwsync_update_list.txt\ndwsync_all_list.txt\n\033[0m"

echo -ne "请选择定时类型:"

read timer

# 若需把逻辑表名加入到定时文本里,则继续执行下列脚本

#假如多次重复同步。。。。。。

if [[ $timer == dwsync_update_list.txt ]]

then

echo $tabname|sed 's/\,/\n/g' >>$SHELL_DIR/dwsync_update_list.txt

cat $SHELL_DIR/dwsync_update_list.txt |sort|uniq >$SHELL_DIR/dwsync_update_list.tmp

cat $SHELL_DIR/dwsync_update_list.tmp >$SHELL_DIR/dwsync_update_list.txt

rm -f $SHELL_DIR/dwsync_update_list.tmp

echo -ne "\033[32mSuccessful! 已成功加入增量定时\033[0m\n"

elif [[ $timer == dwsync_all_list.txt ]]

then

echo $tabname |sed 's/\,/\n/g' >>$SHELL_DIR/dwsync_all_list.txt

cat $SHELL_DIR/dwsync_all_list.txt |sort |uniq > $SHELL_DIR/dwsync_all_list.tmp

cat $SHELL_DIR/dwsync_all_list.tmp >$SHELL_DIR/dwsync_all_list.txt

rm -f $SHELL_DIR/dwsync_all_list.tmp

echo -ne "\033[32mSuccessful! 已成功加入全量定时\033[0m\n"

else

exit

fi

123456789101112131415161718192021222324252627282930313233343536 user@test:~$ cat /data/application/dwsync/dw_sync.sh

#!/bin/bash

# 同步并加入定时同步

# 2012年11

SHELL_DIR=/data/application/dwsync

echo -e "\033[32m请在下面输入逻辑表名,多个则以逗号隔开,\033[0m如:Listing,Item"

echo -ne "请输入逻辑表名:"

read tabname

echo -e " "

echo -ne "同步类型:全量同步(allSync.sh)/增量同步(updateSync.sh)\n\033[32m\nallSync.sh\nupdateSync.sh\n\033[0m"

echo -ne "请选择同步类型:"

read Sync

#跳转目录

$SHELL_DIR/$Sync $tabname || (echo -e "\033[31m 请确认同步类型或逻辑表名是否正确 \033[0m";exit)

echo -ne "定时类型:\033[32m增量定时(dwsync_update_list.txt)或全量定时(dwsync_all_list.txt)\033[0m\n无需加定时或已加定时请\033[32mctrl+c\033[0m退出\n\033[32m\ndwsync_update_list.txt\ndwsync_all_list.txt\n\033[0m"

echo -ne "请选择定时类型:"

read timer

# 若需把逻辑表名加入到定时文本里,则继续执行下列脚本

#假如多次重复同步。。。。。。

if [[ $timer == dwsync_update_list.txt ]]

then

echo $tabname|sed 's/\,/\n/g' >>$SHELL_DIR/dwsync_update_list.txt

cat $SHELL_DIR/dwsync_update_list.txt |sort|uniq >$SHELL_DIR/dwsync_update_list.tmp

cat $SHELL_DIR/dwsync_update_list.tmp >$SHELL_DIR/dwsync_update_list.txt

rm -f $SHELL_DIR/dwsync_update_list.tmp

echo -ne "\033[32mSuccessful! 已成功加入增量定时\033[0m\n"

elif [[ $timer == dwsync_all_list.txt ]]

then

echo $tabname |sed 's/\,/\n/g' >>$SHELL_DIR/dwsync_all_list.txt

cat $SHELL_DIR/dwsync_all_list.txt |sort |uniq > $SHELL_DIR/dwsync_all_list.tmp

cat $SHELL_DIR/dwsync_all_list.tmp >$SHELL_DIR/dwsync_all_list.txt

rm -f $SHELL_DIR/dwsync_all_list.tmp

echo -ne "\033[32mSuccessful! 已成功加入全量定时\033[0m\n"

else

exit

fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值