[SAP BASIS][shell] shell 实战之远程复制传输

需求: 日常工作经常需要将传输从一个系统传到别一个系统 ,需手工拷贝传输的数据文件和控制文件

前提: SAP服务器名字: <sapsid>a  例子: D4C 系统主机是 d4ca ;Q4C 系统主机是q4ca

#!/bin/bash
#####################################################################################################################
#auther : __tingxin__                                                                                               #
#date   : 2020-Mar-29                                                                                               #
#version: 1.0                                                                                                       #
#Funtion: 远程将传输号从一个SAP服务器复制到另一个服务器并加入到传输队列                                                 #
#                                                                                                                   #
#                                                                                                                   #
#parametr:                                                                                                          #
#           <Transport_number>     传输号                                                                           #
#            <SAPSID>              目标SAP系统SAPID                                                                 #
#usage    : trcopy     Transport_number    SAPSID                                                           #
#                                                                                                                   #
#####################################################################################################################

if [ $# -lt 2 ]
then
  print "=========================================================="
  print "check_backup - check if backup exist for date"
  print "Syntax: remotetecopy <Transport_number>  <SAPSID>"
  exit 8
fi
typeset -u STR=$1
echo $STR
SSID=""
ssid=""
shost=""
transportid=""
TSID=$2
typeset -l tsid=$2
targethost=${tsid}a

if [ ${#STR} -eq 10 ]; then
    SSID=$(echo $STR|cut -c 1-3)
    echo "Source system is $SSID"
    typeset -l ssid=$SSID
    shost=${ssid}a                                      #source host
    echo "Source host is $shost"
    transportid=${SSID}K$(echo $STR|cut -c 5-10)
    echo "transport number is $transportid"
    trcofile=K$(echo $STR|cut -c 5-10).${SSID}
    trdatafile=R$(echo $STR|cut -c 5-10).${SSID}
else
    SSID=$(echo $STR|cut -c 9-11)                                #source SAPSID
    echo "Source system is $SSID"
    typeset -l ssid=$SSID
    shost=${ssid}a                                      #source host
    echo "Source host is $shost"
    transportid=${SSID}K$(echo $STR|cut -c 2-7)
    echo "transport number is $transportid"
    trcofile=K$(echo $STR|cut -c 2-7).$SSID
    trdatafile=R$(echo $STR|cut -c 2-7).$SSID
fi

ssh $shost "test -e "/usr/sap/trans/cofiles/${trcofile}""
if [ $? -eq 0 ];then
    echo "$transportid cofiles  is exist in host $shost"
fi

ssh $shost "test -e "/usr/sap/trans/data/${trdatafile}""
if [ $? -eq 0 ];then
    echo "$transportid data file is exist in host $shost"
fi

echo "start copy cofile $trcofile"
ssh -q $targethost  "scp -p $shost:/usr/sap/trans/cofiles/${trcofile} /usr/sap/trans/cofiles/"
if [ $? -eq 0 ];then
    echo "copy cofile $trcofile successfully"
fi

echo "start copy data $trcofile"
ssh -q $targethost  "scp -p $shost:/usr/sap/trans/data/${trdatafile} /usr/sap/trans/data/"
if [ $? -eq 0 ];then
    echo "copy cofile $trdatafile successfully"
fi

echo "start change tranport permission"
ssh -q $targethost  "chown ${tsid}adm:sapsys /usr/sap/trans/data/${trdatafile}"
ssh -q $targethost  "chown ${tsid}adm:sapsys /usr/sap/trans/cofiles/${trcofile}"
if [ $? -eq 0 ];then
    echo "change the permission of ${transportid} successfully"fi

echo "add transport ${transportid} to buffer" ssh -q $targethost " su - ${tsid}adm -c tp addtobuffer ${transportid} ${TSID} pf=/usr/sap/trans/bin/TP_DOMAIN_${TSID}.PFL" if [ $? -eq 0 ];then  echo "add transport ${transportid} to buffer successfully"fi

原文地址:https://www.cnblogs.com/tingxin/p/12591544.html

时间: 2024-11-13 08:53:05

[SAP BASIS][shell] shell 实战之远程复制传输的相关文章

远程调用shell脚本文件和远程复制文件

1.安装sshpass yum install sshpass 2.本地调用远程服务器的shell脚本文件: sshpass -p sa ssh [email protected] -C "/bin/bash" < test.sh 3.从本地复制文件到远程服务器: sshpass -p sa scp egova-pub-ex.jar [email protected]:/egova 原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/119

shell 脚本实战笔记(6)--集群环境配置检测

1). 背景: 集群部署的时候, 需要一致的配置和环境设置. 对于虚拟机集群, 可以借助镜像拷贝, 复制和还原集群机器. 对与物理机集群而言, 则不一样, 如果机器一多, 多人去操作和配置, 对于成熟精干的团队还好, 对于不熟悉环境的小团队, 由于水平的参差不齐, 往往会导致不一致的环境. 因此无论如何, 写脚本进行自动化的配置和环境校验总是最佳实践. 2). 假设应用场景:*) 系统环境: 安装CDH5, 集群规模为16台机器, 每台机器16CPU, 内存16G, 2块SATA盘共500G,

shell 脚本实战笔记(5)--搭建资源的镜像服务器

背景: 由于访问国外站点资源, 有时特别慢. 偶尔一次下载, 肯定还能忍受, 对于多次使用或者小团队内部使用, 搭建一个镜像站点, 无疑是个明智的决定. 这边以搭建CDH5的yum源镜像, 作为例子, 具体阐述如何借助apache2搭建一个目录镜像服务, 以及如何复制站点资源. 1) 搭建apache2服务器*) 安装apache2yum install httpdyum info httpd *) 确认配置项/etc/httpd/conf/httpd.conf DocumentRoot "/v

《跟老男孩学Linux运维之shell编程实战》-第三章 shell变量知识进阶

本文讲解shell变量知识进阶. 以下为知识点的总结,关于练习,本文不不涉及,还需要各位小伙伴自己练习! 1.shell中的特殊位置参数变量,请见下表: 在企业场景下,"$?"的用法: (1)判断命令.脚本或函数等程序是否执行成功: (2)若在脚本中调用执行"exit 数字",则会返回这个数字给"$?"变量: (3)如果是在函数里,则通过"return  数字",把这个数字以函数返回值的形式传给"$?".

老男孩新书Shell编程实战预定开始了-包邮包答疑

老男孩新书Shell编程实战预定开始了(扫图中二维码购买包邮定期包答疑),亲爱的伙伴们,让你们久等了.电脑用户猛戳 电脑购买链接 注意:包邮包3个月(2017春节后起算)Q群书籍内容答疑,等于白送书,还倒搭答疑服务. 如果觉得给力,请帮忙朋友圈.QQ群.空间转载! 活动优惠仅限本次活动,从其他渠道购买不享受此次的服务承诺. 定价 89元 基本信息 作者: 老男孩 丛书名: Linux/Unix技术丛书 出版社: 机械工业出版社 ISBN:9787111556077 上架时间:2017-1-6 出

shell 脚本实战笔记(3)--集群机器的时间同步设置

背景: 有些分布式服务(比如HBase服务), 依赖于系统时间戳, 如果集群各个节点, 系统时间不一致, 导致服务出现诡异的情况. 解决方案: 那如何同步集群各个节点之间的时间? 采用NTP(Network Time Protocol)方式来实现, 选择一台机器, 作为集群的时间同步服务器, 然后分别配置服务端和集群其他机器 1.NTP服务端 *) 安装ntp服务 yum install ntp *) 配置/etc/ntp.conf 这边采用本地机器作为时间的原点 注释server列表 #ser

《跟老男孩学Linux运维之shell编程实战》-第二章 shell变量的核心基础

这篇文章主要讲解 shell变量的核心基础. 1.变量是什么? 变量是什么?可能有好多人不明白,简单地说,变量就是用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可能还会包含变量.路径.字符串等其他的内容. 变量的赋值方式为:先写变量名称,紧接着是"="这个字符,最后是值,中间无任何空格(变量的内容一般要加双引号,以防止出错,特别是当值里的内容之间有空格时). 如何打印变量?通过echo命令加上$变量名 打印变量的值: 例如:定义变量和打印变量: [[e

全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)

注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作为本安装指南的基础篇. 在 <为什么说每个程序员都应该有台Mac电脑>一文中我有提到 Mac 系统的命令行环境与 Linux 系统十分类似,这是因为 Mac OS X 的操作系统内核是 Darwin,它和 Linux 一样是一种优秀的类 Unix 系统.掌握 Linux Shell 命令行的使用,

《跟老男孩学Linux运维之shell编程实战》-第五章 shell脚本的条件测试

本文的知识点是关于shell脚本的条件测试的相关内容. 通常在shell脚本中我们需要做各式各样的条件判断,比如,测试一个文件是否存在.是否为文件或目录.是否 具有执行权限等等,所以在shell脚本中,条件判断还是至关重要的.接下来我们进入正题:shell脚本的条件测试. 1.在bash编程中,条件测试常用的语法形式如下表: 提示: 语法1中的test命令和语法2中的[]是等价的.语法3中的[[]]双中括号为扩展的test命令. 语法4中的(())常用于计算. 在双中括号[[]]中可以使用通配符