zoukankan      html  css  js  c++  java
  • [SAP BASIS][shell] shell 实战之远程复制传输

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

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

    解析: 传输号: DECK000004 有两个文件, 数据文件R000004.DEC 控制文件K000004.DEC

    使用方法

    1. remotetecopy DECK000004 D4C
    2. remotetecopy R000004.DEC D4C
    3. remotetecopy K000004.DEC D4C
    #!/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
      printf "=========================================================="
      printf "check_backup - check if backup exist for date"
      printf "Syntax: remotetecopy <Transport_number>  <SAPSID>"
      exit 
    fi

    if [ $(echo $2|cut -c 1) = "P" ]
    then
      printf "can't directly import to production system "
      printf "pls start import Develop system first "
      exit
    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

     结果

    root@d4ca:/NT/CCS/script/lih8hz $ remote_tr_copy.sh DECK000004  D4C
    DECK000004 
    Source system is DEC
    Source host is deca
    transport number is DECK000004 
    DECK000004 cofiles  is exist in host deca
    DECK000004 data file is exist in host deca
    start copy cofile K000004.DEC
    copy cofile K000004.DEC successfully
    start copy data K000004.DEC
    copy cofile R000004.DEC successfully
    start change tranport permission
    change the permission of DECK000004 successfully
    add transport DECK000004 to buffer
    This is tp version 380.70.10 (release 749, unicode enabled)
    Warning: Parameter DBLIBPATH is no longer used.
    Warning: Parameter DBSWPATH is no longer used.
    Addtobuffer successful for DECK000004
    tp finished with return code: 0
    meaning:
      Everything OK
    add transport DECK000004 to buffer successfully
    每天进步一点点,多思考,多总结 版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
  • 相关阅读:
    14、数列
    13、Hangover
    12、Anagrams by Stack
    彩票软件7) 重构数据库accesser
    彩票软件6)观察者模式
    彩票软件5)Sqlite 数据库访问类
    彩票软件4)插叙
    彩票软件3)wpf界面布局
    彩票软件2)代码管理git
    彩票软件1)前言
  • 原文地址:https://www.cnblogs.com/tingxin/p/12591544.html
Copyright © 2011-2022 走看看